指定ファイルをオープン後、その指定ファイルのしりに
WriteLineを使用してファイルの追記書きは可能でしょうか?
処理例としては、A.txtの内容を1行ずつ読込んで変数に保存し、
その保存したデータをB.txtに1行ずつ追記書きしたいと考えております。
どなたか詳しい方、是非教えてください!
> 追記書きは可能でしょうか?
可能か不可能か、という事なら可能です。
ファイルを開くときに追記モードを指定してください。
(詳細はヘルプで調べてみてください)
バイナリモードで追記したい場合はファイルポインタを末尾に移動すればOK
(ただし、Longの最大値よりバイト数の多いファイルには使用できません)
Open filename For Binary As #fileNo
Seek #fileNo, , LOF(fileNo) + 1
皆さんレス有難う御座います。
今回はReadLineとWriteLineを使って
処理をしたいと考えております。
ヘルプを見て追記モードにしてみたんですが
エラーで落ちます。
下記にソースを記述しますので
アドバイス頂けないでしょうか。
宜しくお願い致します。
*********************************************************
'(test1.txtの内容をtest2.txtに追記書きしたい)
Private Sub Form_Load()
On Error GoTo ErrHandler
Dim strFileName As String
Dim strFileName2 As String
Dim strGetLine As String
Dim objFs As Object
Dim objFile As Object
Dim objFile2 As Object
strFileName = "C:\work\test1.txt"
strFileName2 = "C:\work\test2.txt"
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFile = objFs.OpenTextFile(strFileName)
Set objFile2 = objFs.OpenTextFile(strFileName2, ForAppending)
↑ここで落ちます。
Do While objFile.AtEndOfLine <> True
strGetLine = objFile.ReadLine
objFile2.WriteLine (strGetLine)
Loop
objFile.Close
objFile2.Close
Exit Sub
ErrHandler:
ret = MsgBox(Err.Description, vbCritical, "警告")
End
End Sub
落ちますとか書かずにエラーの内容とか書いてみてはどうですか?
予想するところはMicrosoft Scripting Runtimeを参照設定していないから
ForAppendingが定義されていなくてエラーになっているような気がするけど
ヘルプを見たんだったら、そこにForAppendingじゃなくて直接値を入れて見たら?
その程度であれば、
Open, Line Input, Print, Close で十分な気がします。
Open の時に読み込み側を For Input で、書き込み側を For Append で
開いてやれば、同じことができます。
下記ではどうでしょう。
Shell "command.com /c copy c:\AFile + c:\BFile CFile", 1
>ヘルプを見たんだったら、そこにForAppendingじゃなくて直接値を入れて>見たら?
→Microsoft Scripting Runtimeを参照設定にしても出来ませんでしたが、
値を入れたら追記書き出来ました。
030さん有難う御座います。
>Open, Line Input, Print, Close で十分な気がします。
>Open の時に読み込み側を For Input で、書き込み側を For Append で
>開いてやれば、同じことができます。
→聖さんレス有難う御座います。
最近VBを始めたばっかりなのでOPENとかのやり方が
まだ分からないんですよね・・・。
よかったら詳しく教えて頂けないでしょうか?
>Shell "command.com /c copy c:\AFile + c:\BFile CFile", 1
→花ちゃんさんレス有難う御座います。
このコマンドを使うとA、Bファイルをマージした
CFileが出来るのでしょうか?
後からの人が誤解をするといけないので訂正。
>Microsoft Scripting Runtimeを参照設定にしても出来ませんでしたが、
参照すればできます。
できないのは何か操作を誤っています。
>→花ちゃんさんレス有難う御座います。
> このコマンドを使うとA、Bファイルをマージした
> CFileが出来るのでしょうか?
サンプルを書いているのだから自分で試して見たら、それから質問するのが
普通じゃないでしょうか?