下記のように外部ファイルを読み込んで、編集してまた別ファイルに書き込むという作業を行っております。
*************
ファイルオブジェクト略
*************
1:Open "test.html" For Input Shared As #1 'テキストファイルを開く
2:Do While Not EOF(1) 'ファイルの終端まで繰り返す
3:Line Input #1, strBuf 'テキストファイルより1行を読み込む
4:tf.write strBuf '読み込んだ1行のデータ行を追加する
5:Loop
6:Close #1 'テキストファイルを閉じる
4行目で実際読み込んだデータを書き込んでいるのですが、
書き込んだ後のHTMLファイルソースをみると改行されずに
データが入っています。
<例>
<HTML><HEAD><TITLE>***</TITLE></HEAD><BODY>
"\n"的な改行コードをいれるにはどうすればよろしいでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
writeで出力すると、自分で改行コードを付ける必要があります。
writeの代わりにwritelineで出力すると出力毎に改行されるはずです。
試してみてください。
No.3
- 回答日時:
こんにちは。
> 4:tf.write strBuf '読み込んだ1行のデータ行を追加する
この tf というのが、File System Object の Text Stream なら #1
ご回答のとおりです。
余計なお世話かもしれませんが、折角 File System Object を使っている
なら、テキストを開く部分でも従来の Open ステートメントではなく、
Text Stream をもう一つ用意すれば良いのでは?
File System Object か Open ステートメントか、どちらかに統一した方が
良いと思います。
また、長くなるので下記ソースではやってませんが、ファイル入出力処理
はエラー発生時でもちゃんとファイルを閉じる処理を書いた方が良いです。
Sub Sample()
Dim Fso As Object ' FileSystemObject
Dim TS_Src As Object ' TextStream
Dim TS_Dst As Object ' TextStream
Dim strBuf As String
Dim i As Long
Dim strSrcFilename As String
Dim strDstFilename As String
Const ForReading = 1 ' 参照設定してあるなら不要
Const ForWriting = 2 ' 参照設定してあるなら不要
Const ForAppending = 8 ' 参照設定してあるなら不要
strSrcFilename = "C:\Sample.txt"
strDstFilename = "C:\Output.txt"
Set Fso = CreateObject("Scripting.FileSystemObject")
' 読み取りモードでソースファイルを開く
Set TS_Src = Fso.OpenTextFile(strSrcFilename, ForReading)
' 書き込みモードで出力ファイルを開く(ファイルがなければ自動で作成する)
Set TS_Dst = Fso.OpenTextFile(strDstFilename, ForWriting, True)
While Not TS_Src.AtEndOfStream
strBuf = TS_Src.ReadLine
' 編集(サンプル用に試しに行番号を追加してみる)
i = i + 1
strBuf = Format$(i, "0000: ") & strBuf
' 一行書き出し
TS_Dst.WriteLine strBuf
Wend
TS_Src.Close: Set TS_Src = Nothing
TS_Dst.Close: Set TS_Dst = Nothing
Set Fso = Nothing
End Sub
No.2
- 回答日時:
こんにちは。
出力の形が良く見えてこないのですが、
Open [ファイル名] For Output As #2
はお使いにならないようですね。
tf は、FilesystemObject のようですね。
>"\n"的な改行コードをいれるにはどうすればよろしいでしょうか?
"\n"「的」というのは、Unix ライクやMac ライクを意味するのでしょうか?
Winだったら、& vbCrLf または、& Chr(13) & Chr(10)
Mac なら、& vbCr または、& Chr(13)
Unix なら、& vbLf または、& Chr(10)
ということになるかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- C言語・C++・C# pythonで外部のファイルを読み込む際のエラー 2 2022/04/12 19:22
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのVBAでフォルダ内のファ...
-
テキストファイルを直接置換す...
-
テキストファイルの行頭に文字...
-
H8マイコンにおける演算結果の...
-
特定フォルダ内のテキストファ...
-
fortranでファイルから数値を読...
-
javaプログラム初心者です。
-
VB6側からテキストファイルをク...
-
英辞郎の暗記必須マークの情報...
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
大量のフォルダからひとつのフ...
-
バッチでテキストファイルから...
-
exeファイルを実行するとコマン...
-
VBAでワークシートを引数として...
-
エクセルのVBAについて とある...
-
一括でフォルダと同じ名前にフ...
-
.txtではなく.logの方が良いの...
-
バッチファイル 文字列にスペ...
-
Python CSVファイルについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでPowerPointからExcelにデ...
-
特定フォルダ内のテキストファ...
-
VB6側からテキストファイルをク...
-
複数行の文字列を変数として使...
-
Excel.VBA テキストファイルを...
-
BCPユーティリティの使用法_...
-
fortranでのcsvファイルを出力...
-
テキストファイルの行頭に文字...
-
ある文字列を含む行の抽出
-
テキストファイルを直接置換す...
-
VBAで新しい日付順にファイルを...
-
unicode文字列(日本語)のファイ...
-
iniファイルとの比較(iniファイ...
-
access vbaでCSVファイルを文...
-
バッチでiniファイルの編集
-
VBAで任意のフォルダ内のファイ...
-
A列をテキストファイル名に、B...
-
C#でのファイル編集と上書き保...
-
cobolのコメント削除
-
ランレングス符号化を用いた符...
おすすめ情報