2022年10月13日木曜日

改行コード

UNIX / Linux / Mac 環境 → LF
Windows 環境 → CR+LF
(Mac OS X 以前の Mac → CR)

2022年9月30日金曜日

flask - jinja におけるテンプレート差込みの考え方

return render_template(page1.html) 

1. page1.html が呼出されると
2. extends 指定に基づいて base.html を読込み
3. base.html 内の block に同じ名前の block を差込む
4. その結果を返す

2022年5月18日水曜日

カンマ区切りの文字列作成

val sb = mutableListOf<String>()
sb.add("val1")
sb.add("val2")
sb.add("val3")
sb.add("val4")
sb.add("val5")
val sz = sb.joinToString(",")
Java8 以上

2021年7月5日月曜日

win32 C++ でWMI(Windows Management Instrumentation)を使用する

以下は指定IP(szIPaddr)に ping を打った時の status を取得する

// 主スレッドで呼出し
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, 0);

// Ping status
HRESULT hr;
CComPtr< IWbemLocator > pLocator;
hr = CoCreateInstance(CLSID_WbemAdministrativeLocator, NULL, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (void**)(&pLocator));
if (SUCCEEDED(hr))
{
  CComPtr< IWbemServices > pService;
  //hr = pLocator->ConnectServer(L"root\\cimv2", NULL, NULL, NULL, WBEM_FLAG_CONNECT_USE_MAX_WAIT, NULL, NULL, &pService);
  hr = pLocator->ConnectServer(L"root\\cimv2", NULL, NULL, NULL, 0, NULL, NULL, &pService);
  if (SUCCEEDED(hr))
  {
    CString szSQL;
    szSQL.Format(_T("SELECT * FROM Win32_PingStatus WHERE Address='%s'"), szIPaddr);
    _bstr_t bzSQL(_bstr_t(CT2W((LPCTSTR)szSQL)));
    CComPtr< IEnumWbemClassObject > pEnumObj;
    hr = pService->ExecQuery(L"WQL", bzSQL, (WBEM_FLAG_RETURN_IMMEDIATELY|WBEM_FLAG_FORWARD_ONLY), NULL, &pEnumObj);
    if (SUCCEEDED(hr))
    {
      CComPtr< IWbemClassObject > pObj;
      ULONG uReturned;
      //hr = pEnumObj->Reset();
      hr = pEnumObj->Next(WBEM_INFINITE, 1, &pObj, &uReturned);
      if (!FAILED(hr))
      {
        _variant_t vtBuf;
        hr = pObj->Get(L"StatusCode", 0, &vtBuf, 0, 0);
        pObj.Release();
      }
      pEnumObj.Release();
    }
    pService.Release();
  }
  pLocator.Release();
}

2021年3月27日土曜日

VB.net での nothing (null) の扱い

勝手に初期値に変換される!

Dim dt as Date = nothing
としても dt は初期値がセットされている (nothingではない)
if (dt is Nothing) then
 → エラー

Nothing を許容するには
Dim dt? as Date = nothing  
変数名のおしりに"?" をつけると nothing が代入できる
if (dt is Nothing) then
 → OK


Date型またはNothingを返す関数
Function GetDate() as Nullable(of Date)


Databaseへの登録
Nothing と DBNull.value は異なる

adoCmd.parameter.Add("DATE_VALUE",type.date).value = IIf (dt is nothing, DBNull.value, dt)

-------------------------------------------------------------

Sub Test() 
    Dim dt1 As Date = Nothing
    Dim dt2? As Date = Nothing

    'If (dt1 Is Nothing) Then
    '    Console.WriteLine("dt1 is nothing")
    'End If
    If (dt2 Is Nothing) Then
        Console.WriteLine("dt2 is nothing")
    End If

    Console.WriteLine(String.Format("value1: {0}", dt1.ToString()))
    Console.WriteLine(String.Format("value2: {0}", dt2.ToString()))

    Console.WriteLine(String.Format("F1: {0}", F1().ToString()))
    Console.WriteLine(String.Format("F2: {0}", F2().ToString()))
End Sub

Function F1() As Date
    Return Nothing
End Function

Function F2() As Nullable(Of Date)
    Return Nothing
End Function

2019年3月5日火曜日

ディレクトリを英語化

$ LANG=C xdg-user-dirs-gtk-update

2019年1月19日土曜日

ファイルの有無

BOOL PathFileExits(LPCTSTR filename)

#include <shlwapi.h>
#pragma comment(lib, "shlwapi")