• ベストアンサー

Visual C++ コンソールアプリ

YYMMDDHHMMSS.txtという形式の日時ファイル名のtxtが 実行ファイル直下のtxtフォルダに複数個あり、 getsとsscanfでYYYYMMDD形式で入力を待ち、 日付が該当したらfopenで開きたいのですが どのように指定すればいいのでしょうか? 060125234805.txt 060126101240.txt 060126181124.txt と複数のファイルがあり、20060126と入力した場合に 該当する日付の2つのファイルの中身を画面に表示させたいのです。 時間の早いものから表示して、矢印キーで画面を切り替えようと考えています。 Visual C++ 6.0 コンソールアプリです。

質問者が選んだベストアンサー

  • ベストアンサー
  • V36GTR
  • ベストアンサー率34% (17/49)
回答No.1

こんばんわ _findfirst と _findnext を使えば良いと思います 但し・・・OSによっては、使えないかも・・・(^^;;

参考URL:
http://www.microsoft.com/japan/developer/library/vccore/_crt__find.2c_._wfind_functions.htm

その他の回答 (2)

回答No.3

該当ファイルの検索処理について記述します。 これはAPIによって実現できますよ。 ---------------------------------------------------------------- #include <stdio.h> #include <windows.h> void main() {  HANDLE hFind;  WIN32_FIND_DATA fd;  char FileName[ 256 ];  // 代入処理は省略  sprintf( FileName, "txt\\060126*.txt" );  // ファイルを検索  hFind = FindFirstFile( FileName, &fd );  // 発見した時の処理  if( hFind != INVALID_HANDLE_VALUE )  {   do   {    // 発見したファイル名を表示    printf("Find File = %s\n", fd.cFileName );    /*     後は、発見したファイル名に対して     追加処理をして表示をすればできます。    */   } while( FindNextFile( hFind, &fd ) == TRUE);   // ハンドルを閉じる   FindClose( hFind );  } } ---------------------------------------------------------------- とりあえず、このようなものです。

回答No.2

MFCが使えるのなら、CFileFindというクラスが有ります http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vclib/html/_MFC_CFileFind.asp 使用方法の参考になるサイトも挙げておきますね http://www.dinop.com/vc/allfile_in_folder.html

関連するQ&A