• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBScriptにて、テキストファイルAの中身を、テキストファイルBに行を指定して追加書きしたい)

VBScriptでテキストファイルに行を追加する方法

このQ&Aのポイント
  • VBScriptを使用して、テキストファイルに行を指定して追加する方法について調査しています。
  • c:\tmp\test.txtとc:\tmp\insert.txtの2つのテキストファイルを操作し、特定の行に別のファイルの内容を追加するスクリプトを作成したいです。
  • 既存のファイルに内容を追加するVBScriptのコードを見つける方法を教えてください。

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

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

#1 Wizard_Zeroです。 雑なコードですが・・・ Dim objFSO Dim fileRead, fileWrite Dim strTestLines Dim i Set objFSO = CreateObject("Scripting.FileSystemObject") ' test.txt を読み込んで配列化 Set fileRead = objFSO.OpenTextFile("test.txt") strTestLines = Split(fileRead.ReadAll, vbCrLf) fileRead.Close ' inset.txt を読み込み、test.txt を書き込み(上書き)で開く Set fileRead = objFSO.OpenTextFile("insert.txt") Set fileWrite = objFSO.CreateTextFile("test.txt", True) ' test.txt へ上書き fileWrite.WriteLine strTestLines(0) ' 元の1行目 fileWrite.WriteLine strTestLines(1) ' 元の2行目 fileWrite.WriteLine fileRead.ReadAll ' insertのすべて ' 元の残り - 1行 For i = 2 To UBound(strTestLines) - 1 fileWrite.WriteLine(strTestLines(i)) Next ' 最後の1行は改行なし fileWrite.Write strTestLines(UBound(strTestLines)) fileWrite.Close fileRead.Close

r7dhpkvpnf
質問者

お礼

ご教示頂いたコードで試したところ、理想的な結果を得ることができました! 迅速かつ丁寧にご回答頂き大変感謝します。 ありがとうございました。

その他の回答 (1)

回答No.1

いくつか方法があります。 方法1:読み取りファイルを先に複製 1. test.txt を複製しtest.txt.tmpを作る 2. test.txt.temp と insert.txt を読み取りモードで開く 3. test.txt を書き込み(上書き)モードで作成 4. test.txt に test.txt.tempから2行分読み取って書き込み 5. inser.txt から全行読み取って書き込み 6. test.txt.temp の残りの行を読み取って書き込み 7. test.txt.temp を削除 この方法は、test.txtの作成日時をそのままに更新日時だけが変わります。 方法2:一旦一時ファイルに書き出してリネーム 1. test.txt と insert.txt を読み取りモードで開く 2. test.txt.tmpを書き込みモードで開く 3. test.txt から2行、inser.txtから全行、test.txtの残りの順でtest.txt.tmpへ書き込む 4. test.txt を削除し、test.txt.tmpをtest.txtへリネーム この方法だとファイルの作成日時も新しくなります。 方法3:test.txtの中身をすべて読み込んでおく 1. test.txtを開き、全行を読み込んでおく(改行でSplitした文字列配列として) 2. inser.txtを読み取りモードで開く 3. test.txtを上書きモードで開く 4. test.txtに文字列配列から2行分、insert.txtの全行、文字列配列の残りの順で書き込む 作業用のファイルを複製したり削除したりしません。 どの方法で試しているのか、コードのどの部分がうまくいかないのかも示していただければより詳しく回答できます。

r7dhpkvpnf
質問者

お礼

方法3:test.txtの中身をすべて読み込んでおく 1. test.txtを開き、全行を読み込んでおく(改行でSplitした文字列配列として) 2. inser.txtを読み取りモードで開く 3. test.txtを上書きモードで開く 4. test.txtに文字列配列から2行分、insert.txtの全行、文字列配列の残りの順で書き込む こちらが私もトライしている方法に近く、且つ処理後のファイルの結果が最も理想的です。 もし可能でしたら、サンプルコードをご掲示頂けると大変助かります。

専門家に質問してみよう