C/C++ Edit

ファイル検索 Edit

  • Win32API
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
    
        WIN32_FIND_DATA     findData;
        HANDLE              hFind;
        BOOL                bLoop;
        char                cDir[MAX_PATH+1];
        char                cSearch[MAX_PATH+1];
     
        // パスチェック
        if(strlen(cDir) == 0){
            // エラー
            return;
        }
     
        // 検索条件の設定
        sprintf(cSearch, "%s\\*", cDir);
     
        // 検索準備
        if((hFind = FindFirstFile(cSearch, &findData)) != INVALID_HANDLE_VALUE) {
            bLoop = TRUE;
            while(bLoop){
                // ファイルを検索
                bLoop = FindNextFile(hFind, &findData);
     
                // "." ".."
                if(strcmp(findData.cFileName, ".") == 0 || strcmp(findData.cFileName, "..") == 0){
                    continue;
                }
     
                // @TODO
     
            }
     
            // 閉じる
            FindClose(hFind);
        }
  • MFC
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
    
        CFileFind   fileFind;
        BOOL        bLoop;
        CString     strDir;
        CString     strSearch;
     
        // パスチェック
        if(strDir.IsEmpty()){
            // エラー
            return;
        }
     
        // 検索条件の設定
        strSearch.Format("%s\\*", strDir);
     
        // 検索準備
        if(bLoop = fileFind.FindFile(strSearch)){
            while(bLoop){
                // ファイルを検索
                bLoop = fileFind.FindNextFile();
     
                // "." ".."
                if(fileFind.IsDots()){
                    continue;
                }
     
                // @TODO
     
            }
     
            // 閉じる
            fileFind.Close();
        }

ファイル属性 Edit

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
    DWORD   dwFileAttr;     // ファイル属性
 
    // ファイル属性を取得
    dwFileAttr = GetFileAttributes(strFilePath);
 
    // ファイルが存在するなら
    if(dwFileAttr != -1 && !(dwFileAttr & FILE_ATTRIBUTE_DIRECTORY)){
        // @TODO
 
    }

strtok Edit

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
    char    cWrk[256];  // 作業バッファ
    char    *pTok;      // トークン
 
    // 文字列を作業バッファに格納
    strcpy(cWrk, cStr);
 
    // トークン分割
    pTok = NULL;
    while(1){
        // トークンを1つ取り出す
        if(pTok == NULL){
            pTok = strtok(cWrk, "...");     // @TODO
        } else{
            pTok = strtok(NULL, "...");     // @TODO
        }
 
        if(pTok == NULL){
            // 終了
            break;
 
        } else{
            // @TODO
 
        }
    }

クリップボードへコピー Edit

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
    HGLOBAL     hMem;       // ヒープ上のメモリ領域
    LPTSTR      pMem;       // ヒープ上のメモリ領域(文字列用)
 
    // クリップボードのオープン
    if(!::OpenClipboard(NULL)){
        return;
    }
 
    // ヒープ上にメモリ領域を確保し、文字列をコピー
    // ※このメモリ領域は、アプリ側で解放してはいけない
    hMem = ::GlobalAlloc(GMEM_FIXED, strlen("...") + 1);    // @TODO
    pMem = (LPTSTR)hMem;
    strcpy(pMem, "...");                                    // @TODO
 
    // クリップボードの中身を空にする
    ::EmptyClipboard();
 
    // クリップボードへ文字列をコピー
    ::SetClipboardData(CF_TEXT, hMem);
 
    // クリップボードのクローズ
    ::CloseClipboard();

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-05-26 (土) 13:19:26 (2179d)