テキストファイル中の内容を変更するには?

解決


萌々  2004-08-19 00:09:56  No: 85145

VB初心者です。宜しくお願いします。
テキストファイル中の内容を変更するにはどうすれば良いのでしょうか?
教えてください。
例えば、以下のような文の2行目(abcdefg)を"がぎぐげご"と
変更したいのですが・・・。

<変更前>
あいうえお
abcdefg
かきくけこ
さしすせそ
なにぬねの

<変更後>
あいうえお
がぎぐげご
かきくけこ
さしすせそ
なにぬねの


z  2004-08-21 22:27:34  No: 85146

abcdefg⇒がぎぐげご
となる根拠がわかりませんが・・

Dim strHenkouMae As String
Dim strHenkouAto As String

strHenkouMae = _
    "あいうえお" & vbCrLf & _
    "abcdefg" & vbCrLf & _
    "かきくけこ" & vbCrLf & _
    "さしすせそ" & vbCrLf & _
    "なにぬねの"

strHenkouAto = Replace(strHenkouMae, "abcdefg", "がぎぐげご")

Debug.Print strHenkouAto


萌々  2004-08-22 19:43:03  No: 85147

zさん、どうもありがとうございました。
こんな便利な関数があったなんて...、知りませんでした。
今までは、テキスト中のデータを全て配列に読み込ませて、
変更したい場所だけをif文で書き換えてやってました。
こんな感じで...。

Dim fs As Object
Dim fl As Object
Dim fileName1 As String: fileName1 = "c:\sample1.txt"
Dim fileName2 As String: fileName2 = "c:\sample2.txt"
Dim strRec As String
Dim rec() As String
Dim i As Integer: i = 0
Dim j As Integer: j = 1
Set fs = CreateObject("Scripting.FileSystemObject")
Set fl = fs.OpenTextFile(fileName1, 1, False)
Do Until fl.AtEndOfStream
  i = i + 1
  ReDim Preserve rec(i) As String
  rec(i) = fl.Readline
Loop
fl.Close
Set fl = fs.OpenTextFile(fileName1, 2, False)
Do Until j = i + 1
  If j = 2 Then
    fl.writeline "がぎぐげご"
  Else
    fl.writeline rec(j)
  End If
  j = j + 1
Loop
fl.Close

ちなみに"abcdefg⇒がぎぐげご"に特に意味はありません。
すみません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加