以下のように記述されたc:\tmp\test.txtの3行目に、
test.txt######################ここから
test1
test2
test3
test4
test5
##############################ここまで
以下のように記述されたc:\tmp\insert.txtの中身全てを追加書きして、
insert.txt####################ここから
insert1
insert2
insert3
insert4
insert5
#############################ここまで
c:\tmp\test.txtが以下のような結果になるVBScriptを作成したいです。
test.txt#####################ここから
test1
test2
insert1
insert2
insert3
insert4
insert5
test3
test4
test5
#############################ここまで
色々調べたのですがどうしても上手くいきません。
もし上記結果が得られる方法がありましたらご教授ください。
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
ご教示頂いたコードで試したところ、理想的な結果を得ることができました!
迅速かつ丁寧にご回答頂き大変感謝します。
ありがとうございました。
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の全行、文字列配列の残りの順で書き込む
作業用のファイルを複製したり削除したりしません。
どの方法で試しているのか、コードのどの部分がうまくいかないのかも示していただければより詳しく回答できます。
方法3:test.txtの中身をすべて読み込んでおく
1. test.txtを開き、全行を読み込んでおく(改行でSplitした文字列配列として)
2. inser.txtを読み取りモードで開く
3. test.txtを上書きモードで開く
4. test.txtに文字列配列から2行分、insert.txtの全行、文字列配列の残りの順で書き込む
こちらが私もトライしている方法に近く、且つ処理後のファイルの結果が最も理想的です。
もし可能でしたら、サンプルコードをご掲示頂けると大変助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- その他(プログラミング・Web制作) ZWCAD CUIXとLISPの関係について 1 2022/09/28 03:07
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- Excel(エクセル) Excelの置換が上手くいかない Microsoft® Excel® 2019 MSO (バージョン 5 2022/08/17 22:26
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- サーバー Windowsサーバでグループを検索したい 1 2023/04/17 15:30
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
- Excel(エクセル) エクセルのマクロが途中の行から適用されない 2 2022/07/09 20:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
while文がうまく動かない
-
ifstream/ofstream について
-
perlでCSVをソートする方法につ...
-
Pythonでegrep機能をつかいたい
-
batファイルでrenameができませ...
-
エラー 'dir.h' : No such fi...
-
HTMLのフォームで画像と文...
-
ExcelをCSV書き出す場合のシー...
-
awkスクリプトでダブルクォーテ...
-
Perlの変数に文字数制限(容量...
-
readdir()で得られるファイル・...
-
ファイル全てを .xlsm に変更し...
-
while(<ハンドラ>) {} で行数を...
-
パスから最後のディレクトリだ...
-
テキストデータから指定した1...
-
一定時間が経過したフォルダの削除
-
htaccessで特定のディレクトリ...
-
ReadLineでの読み出し行を指定する
-
1行がやたら長いテキストをバッ...
-
chdirがうまくできない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名を複数個配列で確保...
-
Fortranで1行飛ばして読み込む方法
-
perlで指定範囲を複数ファイル...
-
Pythonでegrep機能をつかいたい
-
「パスが見つかりません」とい...
-
ifstream/ofstream について
-
テキストファイルの各行を配列...
-
Perlのワンライナーをスクリプ...
-
ifstream を利用した1行分のテ...
-
C++でのテキストファイル読み込...
-
perlプログラム 外部複数ファ...
-
system関数と引数について
-
Perl 重複カウント 上位3名
-
Pythonで非日本語のUnicode文字...
-
shellのコマンド deffの差分の...
-
perlで先頭の数値をみて昇順に...
-
Visual Basicを使って三平方の...
-
while文がうまく動かない
-
Perl Grepについて
-
Perlによるディレクトリ内の連...
おすすめ情報