• ベストアンサー

テキストファイルの結合

以下のようなテキストファイル結合を実現したいと思っています。 【ファイル1】 あいうえお かきくけこ さしすせそ 【ファイル2】 123 456 789 ↓↓↓↓↓↓↓↓↓↓↓ 【結合後】 あいうえお123 かきくけこ456 さしすせそ789 このように行単位でファイル1とファイル2の文字列を結合していきたい のですが、VBAでこれを実現できますか? VBAでなく、他の言語でも良いのですが、VBAが手っ取り早い感じがしたので…。 ご教授いただけますよう宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

定義部分は省略しますが、以下のような感じでできますよ。 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には書き出すファイル名を指定してください。

shun10
質問者

お礼

ご回答ありがとうございます。 非常にシンプルなソースで分かりやすく、やりたいことも実現できました! 最終的に3ファイルを結合したのですが、上記のソースをちょっといじっただけで 簡単に出来、非常に助かりました。 本当にありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

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 クラスを使用のようです。

参考URL:
  
shun10
質問者

お礼

ご回答ありがとうございます。 簡単で分かりやすいご説明ありがとうございます。 今回はANo.1の方のソースで実現できたので、imogasi様のご回答は今後の 参考とさせていただきます。 ありがとうございました。

  • tom11
  • ベストアンサー率53% (134/251)
回答No.2

こんにちは、 手っ取り早い方法 テキストファイルが、65536行以下なら、 テキストファイルを、エクセルで、開いて、 コピーペーストで、AカラムとBカラムに、ならべて cカラムに、A&Bで、結合、 結合した文字だけの、テキストファイルを作りたければ、 結合したCカラムを新しいブックに、コピーペーストして、 ブック保存で、テキストファイルで、出力すると 言うのはどうですしょうか。

shun10
質問者

お礼

ご回答ありがとうございます。 テキストファイルは150万件ほどのデータなので、上記の方法が使えなかったのです。 データが少なければ上記の方法は簡単で良いですね。 ありがとうございました。

関連するQ&A