• ベストアンサー

テキストファイル内の検索とカウント

C++言語についての質問です。 下記の処理をするにはどのようにしたら宜しいでしょうか? ********* ある変数で取得した値が、テキストファイル上にいくつ存在するか を調べる。 ※テキストファイルにはスペースも含まれています。 ********** 初心者のため、参考書を見ながら試行錯誤していますが、 なかなかうまくいかない為、ご質問させて頂きました。 よろしくお願いします。

  • k2fh
  • お礼率75% (9/12)

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

  • ベストアンサー
  • tanma3
  • ベストアンサー率58% (14/24)
回答No.3

すみません先ほどの回答に一部おかしなところがありましたので修正します。 int count = 0; while(pFileData!=null) { if((pFileData = strstr(pFileData, "東京都")) != null) { count++; } } "count"が存在数を表します。 が正です。

k2fh
質問者

お礼

ご回答頂き、ありがとう御座いました。 No2の回答でご確認を頂きましたが、ファイル情報の読み込み の部分でも苦労しております。 お手数ですが、ファイル情報の読み込み部分もご教授頂けないでしょうか。 テキストファイルは、d:\test.txt と仮定しています。

その他の回答 (3)

  • tanma3
  • ベストアンサー率58% (14/24)
回答No.4

では簡単にファイル読み込み部を下記に記述します。 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"); } コンパイル+検証をしてないので動作保障はできませんが・・・。

k2fh
質問者

お礼

ご回答ありがとう御座いました。 まだまだ初心者なので、記載して頂いたサンプルを元に 動作確認をしてみたいと思います。

  • tanma3
  • ベストアンサー率58% (14/24)
回答No.2

ファイル情報の取り込みまでは大丈夫ですか?大丈夫と仮定して話を進めさせていただきますが。。。 以下のようにすると取得できると思います。 char *pFileData; // ファイルデータ格納バッファポインタ int count = 0; while(pFileData!=null) { if((pFileData = strstr(pFileData, "東京都")) != null) { count++; } { break; } } "count"が存在数を表します。

  • equinox2
  • ベストアンサー率48% (321/660)
回答No.1
k2fh
質問者

お礼

ご回答ありがとう御座いました。 ご紹介頂いた、URLを参考にさせて頂きました。 ただ経験が浅いため、どのようにコーディングを 始めたら良いか分かりませんでした。 具体的には、下記のようなテキストファイルに、 「東京都」と一致した文字列がいくつあるかを調べようとしています。 ----------------- 住所:東京都 名前:AAAAさん ----------------- 住所:神奈川県 名前:BBBBBBさん ----------------- 住所:東京都 名前:CCCCCCさん ----------------- すいませんが具体的なアドバイスを頂けないでしょうか。 よろしくお願いします。

関連するQ&A

  • テキストファイルからの読み込みがうまくできません(>_<)

    C言語初心者の学生です。 読んでいただきありがとうございます。 テキストファイルに数字を並べ、それを読み込んで char型の変数に入れ、さらにatofによってfloat型に変換し、計算に使っていくということがしたいのですが、 テキストファイルの書き方がおかしいのか、プログラムの書き方がおかしいのか、テキストファイルに書いたとおりの値とは異なるおかしな値が表示されます・・・ だいたいのプログラムの書き方は、 char型のa2、float型のa[n][n]、FILE *fpINを定義して if ( (fpIN = fopen("matrix.txt", "r" )) != NULL ){ if ( fgets(a2,sizeof(a2),fpIN) != NULL ){ } fclose( fpIN ); } for(i=0;i<n;i++){ for(j=0;j<n;j++){ a[i][j]=atof(a2); } } というようなものです。 テキストファイルは、数字をカンマで区切ったり、スペースで区切ったりと いろいろ試してみたのですが、やはり書き込んだ値とは異なるものが表示されます・・・ 最終的には、ひとつのテキストファイルに 複数の行列のための値を書き込んでおき、それを読み込んで計算させるということをしたいのです・・・ どなたか、正しく値が読み込まれない原因が分かりましたら、教えていただければと思います。 お手数をおかけしてすみませんが、よろしくお願いします。

  • FLASH8 外部テキストファイルの読み込みについて

    外部テキストファイルの読み込みを参考資料などを見ていると、下記のような形式で読み込みを行っているのですが。 a.txt --------------------- 任意の変数名1=値 任意の変数名2=値 任意の変数名3=値 --------------------- 下記のようなテキストファイルを読み込むことは可能でしょうか? a.txt --------------------- 2<>名前<>メールアドレス<>画像.jpg<> 1<>名前<>メールアドレス<>画像.jpg<> --------------------- ※最初の1文字目は連番の数字です 前文の方の読み込みは成功しておりますが、下の内容については、どうすればよいかわかりません・・・ 読み込みができるのであれば、各行はsplitで配列に格納したいと思っています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • バッチでテキストファイルから任意の行のみ取得したい

    batファイルを作成していて、 txtから特定の行のみをとりだし、変数に入れたいです。 どうもよくわからないので質問したいと思います。 まず以下の様なテキストファイルがあります。 ------------------- 111 222 333 ------------------- 実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。 行いたい動作は、 ----------------------------------------- 1.テキストファイルの1行目を変数Textに入れる(set Text=111) 2.変数Textを使用し色々処理をする 3.テキストファイルの2行目を変数Textに入れる(set Text=222) 4.変数Textを使用し色々処理をする ----------------------------------------- コレを繰り返します。 2と4は同じ動作ですので、行数のカウンタを設定しループさせる予定です。 n行目を全て取り出す方法がわかれば行けると思うのですが、 どうも見つかりません。ご存知の方がいればお教え願いたいと思います。

  • PHPでテキストファイルの一部を読み込ませたいです。

    PHPでテキストファイルの一部を読み込ませたいです。 PHP初心者、というか、何もわからない者です。助けてください。 PHPで.txtファイルの一部を読み込むことって可能でしょうか? 例えば、ここには一行目を読み込んで、ここには二行目を読み込む、 という感じでindex.phpの中にいくつかの行を読み込ませたいのです。 試行錯誤した結果、どうにもならず、とても困っています。 どなたかご教授頂けませんでしょうか?

    • 締切済み
    • PHP
  • 教えて!ファイルの操作

    下記のテキストファイルを読み出したいです。 四つの変数に値を与えて、後の処理に使いたい。 データの間スペースで分かれた、最後に改行。 やり方を教えて! お願いします。 ******************* temp.txt ******************* 沖縄県 那覇市 26.12 127.41 鹿児島県 鹿児島市 31.33 130.33 宮崎県 宮崎市 31.54 131.25

  • SSIを使って外部テキストファイルの書き換え、生成は可能でしょうか?

    SSIという言語?を使って サーバー上にテキストファイルを生成したり、 もしくは現状のテキストファイルを書き換えたりする処理をさせることは可能なのでしょうか。 cgiなら外部テキストを読み込んだり、書き換えたりするのはできると思うのですが、 SSIにはどこまで可能なのか、気になります。 参考になるURL等、ございましたら、 教えてください。 宜しくお願い致します。

  • 外部テキストファイルの変数を書き換えることは可能ですか?

    お世話になります。 外部テキストファイルに設定してある変数を 読み込み、flash側で特定な処理をした後に、 外部テキストファイルの変数を書き換えたいのですが、 そんなことは可能ですか? よろしくお願いします。

  • テキストファイルから漢字や数値を検索する方法

    C言語初心者です。自分の力では解決できそうもないので質問しました。よろしくお願いします。 テキストファイルをオープンして、そのファイルにある特定の漢字を 検索するプログラムはどのように書けばよいのでしょうか。 例:テキストファイル: sample.txt(500byet) 検索する漢字  : こんにちわ よろしくお願いします。

  • C言語でテキストファイルへのランダムアクセス

    こんにちは。 C言語を使い、CSVファイルで特定の通し番号が振られたレコード1行の値を 変数に格納したいのですがそれはできないのでしょうか? いろいろな参考書を確認するとバイナリファイルならランダムアクセスという方法で 任意の場所に直接アクセスできるらしいですが CSVなどのテキストファイルの場合、 一度ファイルの内容をすべて変数に読み込んで 変数内で検索するしかないのでしょうか? レコード数が多い場合でも変数にすべて読み込むしかないのでしょうか? ちなみにこんなファイルです。 001,山田 太郎,yamada tarou,東京,世田谷,08012341234 002,佐藤 二郎,satou jirou,北海道,釧路,09012341234 1カラム目は固定長、そのほかは可変長です。 ランダムアクセスで使うfseek関数はサイズで移動するらしいので 可変長のデータが含まれているとこの関数は使えないんじゃないかと思っています。 2カラム目には半角スペースも入っています。 1000レコードくらいです。 ご存知のかた、アドバイスお願いします。

  • 同一テキストファイル内にある別の文章を外部から読み込ませたいです

    はじめまして。 参考本を読みながらフラッシュに取り組んでいる初心者です。 質問は,一つのテキストファイル(news.txt)に「&news1=○○○、&news2=△△△」と言ったように複数の文章を記入し それをフラッシュの複数のテキストフィールドに読み込ませたいのですが、上手く行きません。 どうすればよいですか? 参考本には「同一テキストファイル内に存在する別の文章を他のテキストフィールドへ転送することも出来ます」と、書いてあります。 では、宜しくお願いします。

専門家に質問してみよう