#author("2018-05-26T13:19:26+09:00","default:mat2umoto","mat2umoto")
#contents

*C/C++ [#wd68397a]
**ファイル検索 [#bed7963c]
-''Win32API''
#code(c){{
    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''
#code(c){{
    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();
    }
}}

**ファイル属性 [#ub208b01]
#code(c){{
    DWORD   dwFileAttr;     // ファイル属性

    // ファイル属性を取得
    dwFileAttr = GetFileAttributes(strFilePath);

    // ファイルが存在するなら
    if(dwFileAttr != -1 && !(dwFileAttr & FILE_ATTRIBUTE_DIRECTORY)){
        // @TODO

    }
}}

**strtok [#mb85f71b]
#code(c){{
    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

        }
    }
}}

**クリップボードへコピー [#s9af8cb0]
#code(c){{
    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