#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(); }}