テキストファイルの結合

[戻る]
VCrookie 2003/12/04(木) 22:27:07
環境:Win2000 VC++6.0 MFC

あるフォルダに以下のような1行のテキストファイルが複数あります。

AAA,BBB,CCC,123,456,987.654,・・・

各ファイルは別アプリケーションから、各々イベント発生時に作成され、
"AAA"、"BBB"等はそのイベント内容の情報であり、それをカンマ区切りの
文字列として出力しています。
これらのファイルをExcelで開ける1つのファイルに結合させたいのですが、
うまい方法はありますでしょうか?

今考えているやり方としては、ベタベタですが
1.フォルダ内の全ファイルを検索
2.1つ目のファイルの文字列を読み込み改行コードを付加
3.2でできたの文字列に次のファイルの文字列をつなげ、さらに改行コードを付加
4.3を最後のファイルまで繰り返し
5.できあがった文字列を拡張子.csvファイルとして保存
てな具合にやればできなくはないのですが、いちいち2.3.のようなことを
やらなくても、直接ファイル同士を結合させる方法ってないですかね?
strcatならぬfilecatなる関数があればいいのですが、、、。
もし良い解決法があればよろしくご教授願います。

渋木宏明(ひどり) [E-Mail] [HomePage] 2003/12/04(木) 22:58:40
unix 系OSなら、お望みどおり、cat というコマンドがあります。

DOS/Windows でも

COPY A+B C

でファイル連結できます。

NT 系OSなら、工夫すればバッチでもできるかも。

でも、改行はさんだりとかの処理があるんなら、プログラムでやった方が早そ。

コンパイルするのが面倒なら、WSH でも使うとか。

dairygoods 2003/12/05(金) 11:16:40
二つのファイルを改行を入れてつなげる:

#include <fstream>
using namespace std;

void main()
{
  ifstream f1("a.txt"), f2("b.txt");
  ofstream f3("c.txt");
  f3 << f1.rdbuf() << endl << f2.rdbuf() << endl;
}

VCrookie 2003/12/08(月) 10:24:36
[[解決]]
dairygoodsさんの方法でできました。
どうもありがとうございました。

古いスレッドには追加発言できません。