- ベストアンサー
テキストファイルの結合
以下のようなテキストファイル結合を実現したいと思っています。 【ファイル1】 あいうえお かきくけこ さしすせそ 【ファイル2】 123 456 789 ↓↓↓↓↓↓↓↓↓↓↓ 【結合後】 あいうえお123 かきくけこ456 さしすせそ789 このように行単位でファイル1とファイル2の文字列を結合していきたい のですが、VBAでこれを実現できますか? VBAでなく、他の言語でも良いのですが、VBAが手っ取り早い感じがしたので…。 ご教授いただけますよう宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
定義部分は省略しますが、以下のような感じでできますよ。 open filename1 for input as #1 open filename2 for input as #2 open filename3 for output as #3 do until eof(1) and eof(2) a="" b="" if not eof(1) then line input #1,a if not eof(2) then line input #2,b print #3,a;b loop close 変数はすべて文字型として、filename1~2には読み込みファイル名、 filename3には書き出すファイル名を指定してください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAででもVB6.0でも同じようにできます。VB2005などでも。 全くファイル1と2がレコードの順序の対応が崩れてないなら、 ファイル1をオープン ファイル2をオープン アウトプットファイルをオープン(テキスト) ーー ファイル1のレコードの終わりまで(EOF)繰り返し ファイル1を1レコード読む ファイル2を1レコード読む 両者の文字列を前後に結合 アウトプットファイルを1レコード書き込む ファイルの終わりまで繰り返し ーー 終わると ファイル1をクローズ ファイル2をクローズ アウトプットファイルをクローズ) ーー レコード終端コード(VbCrLf)はインプットレコード変数には入りませんので気にする必要なし。 しかし カンマ区切りなどなら、両レコードの文字列を結合するとき、区切りを挟む必要gあります。 ーー ファイル入出力は 昔ながらのBasic系のLine Input、printや VBScript系のReadLine,WriteLineなどがあります 最近はStreamReader クラスを使用のようです。
お礼
ご回答ありがとうございます。 簡単で分かりやすいご説明ありがとうございます。 今回はANo.1の方のソースで実現できたので、imogasi様のご回答は今後の 参考とさせていただきます。 ありがとうございました。
- tom11
- ベストアンサー率53% (134/251)
こんにちは、 手っ取り早い方法 テキストファイルが、65536行以下なら、 テキストファイルを、エクセルで、開いて、 コピーペーストで、AカラムとBカラムに、ならべて cカラムに、A&Bで、結合、 結合した文字だけの、テキストファイルを作りたければ、 結合したCカラムを新しいブックに、コピーペーストして、 ブック保存で、テキストファイルで、出力すると 言うのはどうですしょうか。
お礼
ご回答ありがとうございます。 テキストファイルは150万件ほどのデータなので、上記の方法が使えなかったのです。 データが少なければ上記の方法は簡単で良いですね。 ありがとうございました。
お礼
ご回答ありがとうございます。 非常にシンプルなソースで分かりやすく、やりたいことも実現できました! 最終的に3ファイルを結合したのですが、上記のソースをちょっといじっただけで 簡単に出来、非常に助かりました。 本当にありがとうございます。