11

私がやりたいことの擬似コードは次のとおりです。

Open text File

Find "XXXXX" and Replace with "YYYY"

Save text File As

Close text file

これは私がこれまでに持っているものです

Private Sub CommandButton1_Click()

Dim sBuf As String
Dim sTemp As String
Dim iFileNum As Integer
Dim sFileName As String

' Edit as needed
sFileName = "C:\filelocation"

iFileNum = FreeFile
Open sFileName For Input As iFileNum

Do Until EOF(iFileNum)
Line Input #iFileNum, sBuf
sTemp = sTemp & sBuf & vbCrLf
Loop
Close iFileNum

sTemp = Replace(sTemp, "DIM A", "1.75")
sTemp = Replace(sTemp, "DIM B", "2.00")
sTemp = Replace(sTemp, "DIM C", "3.00")
sTemp = Replace(sTemp, "DIM D", "4.00")

'Save txt file as (if possible)

iFileNum = FreeFile
Open sFileName For Output As iFileNum

Print #iFileNum, sTemp

Close iFileNum

'Close Userform
Unload UserForm1

End Sub

しかし、元のテキスト ファイルを上書きする代わりに、新しいファイルに「名前を付けて保存」したいと考えています。

4

5 に答える 5

13

メモ帳を使用する理由

Sub ReplaceStringInFile()

Dim sBuf As String
Dim sTemp As String
Dim iFileNum As Integer
Dim sFileName As String

' Edit as needed
sFileName = "C:\Temp\test.txt"

iFileNum = FreeFile
Open sFileName For Input As iFileNum

Do Until EOF(iFileNum)
    Line Input #iFileNum, sBuf
    sTemp = sTemp & sBuf & vbCrLf
Loop
Close iFileNum

sTemp = Replace(sTemp, "THIS", "THAT")

iFileNum = FreeFile
Open sFileName For Output As iFileNum
Print #iFileNum, sTemp
Close iFileNum

End Sub
于 2012-05-03T15:50:06.483 に答える
8

この行を追加するだけです

sFileName = "C:\someotherfilelocation"

この行の直前

Open sFileName For Output As iFileNum

アイデアは、以前に読んだファイルとは別のファイルを開いて書き込むことです ( C:\filelocation)。

凝って本物の「名前を付けて保存」ダイアログボックスを表示したい場合は、代わりにこれを行うことができます:

sFileName = Application.GetSaveAsFilename()
于 2012-05-03T17:44:05.550 に答える
-1

このコードは、完全なテキスト ファイルの行を開いて読み取ります。その変数 "ReadedData" は、テキスト行をメモリに保持します。

Open "C:\satheesh\myfile\Hello.txt" For Input As #1

do until EOF(1)   

       Input #1, ReadedData
loop**
于 2012-12-26T15:37:00.527 に答える