環境: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なる関数があればいいのですが、、、。
もし良い解決法があればよろしくご教授願います。
unix 系OSなら、お望みどおり、cat というコマンドがあります。
DOS/Windows でも
COPY A+B C
でファイル連結できます。
NT 系OSなら、工夫すればバッチでもできるかも。
でも、改行はさんだりとかの処理があるんなら、プログラムでやった方が早そ。
コンパイルするのが面倒なら、WSH でも使うとか。
二つのファイルを改行を入れてつなげる:
#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;
}
dairygoodsさんの方法でできました。
どうもありがとうございました。