- ベストアンサー
テキストファイル内の検索とカウント
C++言語についての質問です。 下記の処理をするにはどのようにしたら宜しいでしょうか? ********* ある変数で取得した値が、テキストファイル上にいくつ存在するか を調べる。 ※テキストファイルにはスペースも含まれています。 ********** 初心者のため、参考書を見ながら試行錯誤していますが、 なかなかうまくいかない為、ご質問させて頂きました。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
すみません先ほどの回答に一部おかしなところがありましたので修正します。 int count = 0; while(pFileData!=null) { if((pFileData = strstr(pFileData, "東京都")) != null) { count++; } } "count"が存在数を表します。 が正です。
その他の回答 (3)
- tanma3
- ベストアンサー率58% (14/24)
では簡単にファイル読み込み部を下記に記述します。 FILE *pFile; int iLength; char *pFileData; pFile = fopen("d:\\test.txt", "r"); iLength = 0; if(pFile!=NULL) { while((char)fgetc(pFile) != EOF) { iLength++; } fseek(pFile, 0, SEEK_SET); if(iLength != 0) { if((pFileData = (char*)malloc(iLength+1)) != NULL) { fread(pFileData, 1, iLength, pFile); *(pFileData + iLength) = '\0'; /* ココに任意の処理を記述してください */ free(pFileData); } else { printf("メモリ確保に失敗"); } } fclose(pFile); } else { printf("ファイル読み込み失敗\n"); } コンパイル+検証をしてないので動作保障はできませんが・・・。
お礼
ご回答ありがとう御座いました。 まだまだ初心者なので、記載して頂いたサンプルを元に 動作確認をしてみたいと思います。
- tanma3
- ベストアンサー率58% (14/24)
ファイル情報の取り込みまでは大丈夫ですか?大丈夫と仮定して話を進めさせていただきますが。。。 以下のようにすると取得できると思います。 char *pFileData; // ファイルデータ格納バッファポインタ int count = 0; while(pFileData!=null) { if((pFileData = strstr(pFileData, "東京都")) != null) { count++; } { break; } } "count"が存在数を表します。
- equinox2
- ベストアンサー率48% (321/660)
お礼
ご回答ありがとう御座いました。 ご紹介頂いた、URLを参考にさせて頂きました。 ただ経験が浅いため、どのようにコーディングを 始めたら良いか分かりませんでした。 具体的には、下記のようなテキストファイルに、 「東京都」と一致した文字列がいくつあるかを調べようとしています。 ----------------- 住所:東京都 名前:AAAAさん ----------------- 住所:神奈川県 名前:BBBBBBさん ----------------- 住所:東京都 名前:CCCCCCさん ----------------- すいませんが具体的なアドバイスを頂けないでしょうか。 よろしくお願いします。
お礼
ご回答頂き、ありがとう御座いました。 No2の回答でご確認を頂きましたが、ファイル情報の読み込み の部分でも苦労しております。 お手数ですが、ファイル情報の読み込み部分もご教授頂けないでしょうか。 テキストファイルは、d:\test.txt と仮定しています。