• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ADODB.Streamで開いたファイルに追記)

ADODB.Streamで開いたファイルに追記する方法

このQ&Aのポイント
  • ADODB.Streamを使用してファイルに追記する方法について説明します。
  • regEx.Patternを使用して指定した一行を既存のファイルに追記する方法について説明します。
  • C: est_new.txtに指定した一行を追記するにはどうしたら良いか、解説します。

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

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

Option Explicit Const adSaveCreateOverWrite = 2 'ちゃんとストリームは分けましょう。 Dim objStream1 Dim objStream2 Dim regEx Dim testLine Dim tempLine Set objStream1 = CreateObject("ADODB.Stream") objStream1.CharSet = "UTF-8" objStream1.Open() objStream1.LoadFromFile("test.txt") Set regEx = New RegExp regEx.Pattern = "aa[a-z]" Do Until objStream1.eos tempLine = objStream1.readtext(-2) 'aa[a-z]という正規表現にマッチする行は(行頭、行末がないので)3行あるが、 '変数の内容がそのたびに書き換えられるので最終的なtestLineの中身はaaxc If regEx.Test(tempLine) Then testLine = tempLine End If Loop objStream1.close() Set objStream2 = CreateObject("ADODB.Stream") objStream2.CharSet = "UTF-8" objStream2.Open() objStream2.LoadFromFile("test_new.txt") objStream2.Position = objStream2.size objStream2.WriteText(testLine) objStream2.SaveToFile("test_new.txt") , adSaveCreateOverwrite objStream2.Close() '============================ 'テストに使ったデータ(test.txt)。使っている文字列に特に意味はなく適当に打ち込んだ。 'bbb 'aaa 'abc 'aad 'add 'xyz 'aaxc '====テストに使った実行前のデータ(test_new.txt)。最後に改行が入っている点に注意。 'rrxc '====実行後のデータ(test_new.txt) 'rxrc 'aaxc '補足: 'Cドライブに固定されるのを嫌って、ドライブ名やフォルダ名の指定をなくしている。 '作ったコードおいておいた 'http://cid-b89cb784f5346675.office.live.com/browse.aspx/TestCase/Q6311251?uc=3

DONALD-D
質問者

お礼

迅速、丁寧な回答ありがとうございました。 思い通りの動きなりました。 また機会がありましたら宜しくお願いします。

関連するQ&A