• ベストアンサー

テキストファイルの結合

以下のようなテキストファイル結合を実現したいと思っています。 【ファイル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/17068)
回答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

  • テキストファイルへの書き出し

    お世話になります。 ASP(VBScript)で質問なのですが、 例えば、テキストエリア内に あいうえお かきくけこ さしすせそ という風に複数行の文字列が記述してあるとして、 とあるボタンを押した時に、 この文字列をテキストエリア内に記述してあるとおりに テキストファイルへ出力したいのですが、 どのようにすればよいでしょうか? ご教授お願いいたします。

  • 文字列検索 複数のテキストファイル

    最近趣味でC言語を始めたのですが、 大本のリストを含んだテキストファイルに含まれる文字列 【テキストの中身】 osaka nagoya tokyo 上のリストを行ごとに読み込んで もう一つのファイルから検索して該当する文字列を含む行以外を削除するようにしたいのですが何か良い方法はないでしょうか? 色々調べながらやってはいるもののまだまだ勉強不足なせいかわからず困っております。よろしければご教授お願いします。

  • テキストファイルを、ファイル名を文章に組み込みながら結合する方法

    大量のテキストファイルを結合する必要に迫られています。 単純に結合するだけなら、そういった用途のソフトは多くありますので問題はありません。 しかし今回、テキストファイルのファイル名を、そのテキストファイル内の文章の先頭に入れ、その上でテキストファイルを結合する必要が出てきました。 ファイル名に法則性が無く、なおかつファイル名そのものがそのテキストファイルの内容を意味するものとなっており、どうしても上で書いたような処理が求められるのです。 また、出来ればフォルダごとドロップすることでフォルダ内のテキストファイルを上に書いたような処理をしたうえで結合し、その結合された新しいテキストファイルの名前に、フォルダの名前を付けてくれるソフトであれば、なおありがたいです。 模式図で示すと以下のようになります。 フォルダ「A」  ┣ファイル「ファイル01」  ┃   文章「文文文文文文文」  ┣ファイル「ファイル02」      文章「文文文文文文文」 この状態で、フォルダAをドロップすることで、 ファイル名「A」のテキストファイルが出来、 その中身が、 >ファイル01 >文文文文文文文 > >ファイル02 >文文文文文文文 となるソフトです。 このような機能を持ったテキスト結合ソフトがございましたらご教授下さい。 もしなければ、上記の機能を実現する方法が他にあるかお教え頂ければ幸いです。 どうぞよろしくお願いします。

  • テキストファイルを読み込むには・・・。

    テキストファイルの中身が以下のように abcd,efg,hij,klmn↓ opqr,stu,vwx,yzab↓ cdef,ghi,jkl,mnop↓ .         .          .         .         のように何行あるか分からない状態で1行ずつ,と\0で区切って4つの文字列を取り出したい(上のテキストファイルの1行目だと[abcd][efg][hij][klmn]のように)のですがどのようにすればいいのでしょう?できれば余分なメモリを確保するやり方を避けたいです。

  • javaScriptで、テキストエリアのある文字列を見つけて、

    javaScriptで、テキストエリアのある文字列を見つけて、 その行から、1行目と2行目を消すという処理を行いたいのですが、 コーディングがわかりません。 教えて下さい。 (例) 下記のテキストエリアから、「<ターゲット文字列>」を見つけて、 その行から1行目と2行目、つまりは、「さしすせそ」と「たちつてと」を削除したいです。 -----textarea----- あいうえお かきくけこ <ターゲット文字列> さしすせそ たちつてと

  • 二つのテキストファイルを行単位で交互に一つに

    10000行のテキストファイルが二つあります。 二つのテキストファイルの内容を行単位で交互に結合させて一つのテキストファイルにまとめたいのですが 例えると下記のようにしたいです。 二つのテキストファイルA.txtとB.txtがあるとします。 ---------------------------------------------- A.txt ああああああああああああああ ささささささささささささささささ ななななななななななななななな ------------------------------------------------ ------------------------------------------------ B.txt かかかかかかかかかかかかかか たたたたたたたたたたたたたた はははははははははははははは ----------------------------------------------- A.txtとB.txtの内容を行単位で交互に一つのテキストファイルとしてC.txtのように保存したいです。 ----------------------------------------------- C.txt ああああああああああああああ かかかかかかかかかかかかかか ささささささささささささささささ たたたたたたたたたたたたたた ななななななななななななななな はははははははははははははは ---------------------------------------------- 検索して調べてみたのですが Pasteコマンドで実現させる方法を試してみたのですが うまくいかず、もしかしたらWindowsにもともと備わっていない機能なのではないかと思い検索したらbusybox64.exeを ダウンロードしてインストールしようと思いましたが コマンドプロンプトにbusybox64.exe --installを 入力してみますとうまく生きました。 busyboxを使わずに行単位で交互にテキストファイルを結合させる方法も知りたいです。 よろしくお願い致します。 返答をお待ちしております。

  • VBAでテキストファイルのデータを1つずつ読みたい

    VBでなくVBAなのですが、以下のようなテキストファイルの1,2行目は行単位で、4行目以降は1データずつ読みたいのですが、自分の知識では'Line'を使用しての行単位での読み込みしかできません。方法があれば教えて頂きたく存じます。 DATE 03/03/21 TIME 09:44:21 (空行) 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 ・ ・ ・ このような感じです。よろしくお願い致します。あと、VBAのファイル操作の詳しい解説書なども教えて頂けるとなお助かります。

  • C#における文字「¥」の結合

    開発初心者です。 ディレクトリとファイル名を結合してテキストボックスに表示させるために txtShiteiFile.Text = windir +"\"+ fileName; 文字列の結合で以上のようなコーディングをすると 「定数の新しい行です」というメッセージとともにコンパイルエラーになります。 ちなみに「¥」以外の文字ならなんでも結合できます。 どご存知の方がいらっしゃれば、ご教授宜しくお願いします。

  • C#における文字「¥」の結合

    C#開発初心者です。 ディレクトリとファイル名を結合してテキストボックスに表示させるために txtShiteiFile.Text = windir +\"\\\"+ fileName; 文字列の結合で以上のようなコーディングをすると 「定数の新しい行です」というメッセージとともにコンパイルエラーになります。 ちなみに「¥」以外の文字ならなんでも結合できます。 どご存知の方がいらっしゃれば、ご教授宜しくお願いします。

  • テキストファイルの操作で教えてください!

    テキストファイル操作について教えて下さい。 膨大な数のテキストファイルがあります。 中身は改行などを含む ---------- ・ ・ ・ 1. 文字列 文字列 文字列 2. 文字列 文字列 文字列 。 。 。 ---------- の様な形です。 1つのファイルに1.~100.まであります。 この1.から100.までを全ファイル抜出すか前後の行を削除し、1つのファイルにしたいです。 どうすればできるか教えてください。 お願いします。