• 締切済み

データファイルの処理と保存について

はじめまして。 C言語についてまだ勉強が不十分なので、ご質問させていただきます。 現在、あるいくつかのデータファイルがあります。 中に入っているデータ数は2000行以上です。 列は3列です。 これを分割したいのですが、1つのデータファイルは100個で構成します。 その100個スケールを10個ずつずらして新しいファイルに入れていきます。 今Excelで手作業でやっているのですが、大変時間がかかります。 Excelですと、行番号1~100を取り出して新しいファイル「ファイル名_1.txt」をつくり、次に先ほどの100番目までのデータのうち、10番目まで削除して行番号11~110を取り出して新しいファイル「ファイル名_2.txt」を作成。 つまりこのファイルは90個のデータが重なっています。 □内にデータが10個だとすると □□□□□□□□□□  □□□□□□□□□□   □□□□□□□□□□    □□□□□□□□□□ といったように10ずつずらして、このようなことを繰り返しているのですが、現在総数666個のデータを用いて分割し、57個のデータファイルができました。 ファイルはそれぞれ100ずつとしていますが、最後のみ106個です。 このようなことをCでできないでしょうか。 ・100個スケールを10個ずつずらして格納。 ・出力ファイル名は「ファイル名_n.txt」(n=1,2,3,4...) ご協力お待ち申し上げております。 よろしくお願いいたします。

みんなの回答

  • BLK314
  • ベストアンサー率55% (84/152)
回答No.2

回答ではなく、アドバイスなのですが... 絶対に"C言語"でなければダメでしょうか? "C++"だったらSTLを使えば簡単です。 実は今日似たようなものをC++で実装しました 8192バイト1ブロックの移動平均をとる問題でしたが ものの数行で実装できてしまいました。 感動ものです。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

できるかどうかで言えば、できます。 以下のような手順を踏みます。 a.(事前準備)n=0を宣言しておく b.100行読み出してファイル1に保存。 c.n=n+1を実行 d.一旦ファイルポインタを先頭に戻し(n*10)行読み飛ばし。 e.(以下bから繰り返し) 但し、この方法だと >最後のみ106個です。 は満たせないので、少し工夫が必要ですが…… 尚、b.は1行ずつ読み書きして100行分になってもかまいません。

関連するQ&A