- ベストアンサー
Cでのデータ処理
C言語でデータ処理のプログラムを作成したいのですが うまく作ることができません。 具体的に説明させて頂くと 大量のデータから特定の条件の行だけを 抜き出せといった感じのものです。 例えば、下記のような情報から 1 aaa 80 2 bbb 70 3 ccc 60 4 ddd 70 「3列目」の値が「70」の行だけ取り出すといったものです。 どのように作ればよいかアドバイスお願いします。 ホームページなんかも教えて貰えると大変ありがたいです。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。itohhといいます。 C言語の参考書はお持ちですか? 1冊は購入をお勧めします。 ファイルの入出力関係の関数はご存じでしょうか? fopen,fclose,fgets,fprintfなどです。(まだまだ沢山ありますが...) 本来は、ご自身で書いたソースを載せて判らないところを質問するのが良いのではない でしょうか? 基本的なパターンでは。 (1)入力ファイルのオープン。 (2)出力ファイルのオープン。 (3)以下の処理を入力ファイルの最後まで繰り返す。(3-3まで) (3-1)入力ファイルから1行読み込む。 (3-2)読み込んだデータを解析する(”70”が入っているか) (3-3)”70”のとき:出力ファイルに読み込んだデータを出力します。 (4)入力ファイルをクローズします。 (5)出力ファイルをクローズします。 あと、勉強に参考になるサイトを載せておきます。 「猫でもわかるプログラミング 」 URL:http://www.kumei.ne.jp/c_lang/index.html 「Cプログラミング診断室」 URL:http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html 「VC++の使い方」(VC++を使っていなかったらゴメンなさい) URL:http://www.nitoyon.com/vc/
その他の回答 (2)
- yatokesa
- ベストアンサー率40% (201/496)
fgets 等で1行読みだし、行の解析を行います。 その行(レコード)が固定長ならカラムを決め打ちで分割し、区切り文字(トークン)で分割されているのなら strtok で分割するのが楽です。
- SpiralGalaxy
- ベストアンサー率39% (649/1653)
>具体的に説明させて頂くと んーー。全然具体的に見えないんですが…。 >「3列目」の値が「70」の行だけ取り出すといったものです。 このデータは何処にあるんですか?ファイル?データベース?それともその都度、人が入力する?それによってはコーディングはまるで違いますよ。 >ホームページなんかも教えて貰えると大変ありがたいです。 Webアプリケーションということなんですかね?C言語のデータ処理とつながった話なんでしょうか?それだったら、C言語にこだわらずJavaとかPHPとか別の手段もあると思います。
お礼
解答ありがとうございます。 言葉足らずで申し訳ありません。 あらためて説明させていただきます。 >「3列目」の値が「70」の行だけ取り出すといったものです。 このデータは、ファイルにあります。 このファイルを読んで、必要なデータのみ取り出したファイルを 別に作りたいということです。 私の理想ではプログラムは対話式で プログラムを実行すると、 read file name? -->aaa.dat /*元のファイルの名前*/ make file name -->zzz.dat /*新しく作るファイルの名前*/ line -->3 /*何列目のどのような値の */ value -->70 /*のどのような値の行を取り出したいか*/ 上記のように表示され 新しく作ったファイル「zzz.dat」に 2 bbb 70 4 ddd 70 というデータがはいるようなものがいいのですが。 >ホームページなんかも教えて貰えると大変ありがたいです。 これは、これに近いプログラムの作成手順なんかがのっている ホームページがあれば、教えて欲しいという意味です。