vb中怎么批量替换特定的字符串?

比如吧,有个文本,内容如下:
1234 abcdefg
1234 asdfghj
1234 adferte
5678 dffesrew

请问怎么才能把文本中的所有的1234换成5678呢?
谢谢。

数据类型就是上面的样子,也就是一对一对出现,中间用空格分开,每行都是这样,就简单。而且1234总是在前面。
假如数据结构不是这样的话,方法也会变化的。
请明示 
张志晨

Dim txtName As String

Function getFileName(dlg As Object) As String
'添加 commondialog1
'添加 file1, 可设为不可见 也就是只当作数组

On Error GoTo err
With dlg
.DialogTitle = "请指定文件夹"
.Filter = "文本文件(*.txt)|*.txt"
.ShowOpen
getFileName = .FileName
End With
Exit Function
err:
MsgBox "您没有选择文件或者文件夹中没有txt文件"
End Function
'写
Sub wirteTxt(namePath As String, txt As String)
Open namePath For Output As #1
Print #1, txt
Close #1
End Sub

'读
Function lineRead(namePath As String) As String
'多行数据
Dim strLine As String
Dim strBox As String

Open namePath For Input As #1
Do Until EOF(1)
Line Input #1, strLine
strBox = strBox + strLine + vbCrLf
Loop
Text1(0).Text = strBox
Text1(1).Text = Replace(strBox, "1234", "5678")
Close #1
End Function

Private Sub Command1_Click()
txtName = getFileName(CommonDialog1)
lineRead txtName

End Sub

Private Sub File1_Click() '这只是修改一个文件,你可以用循环修改文件夹下所有的txt文件
lineRead File1.List(ListIndex)
wirteTxt txtName, Text1(1).Text

End Sub追问

数据就是系统的Hosts文件,它们的确是一对一对出现的,但分隔符可能是1-4个空格或者是tab,不过前面是一个IP地址,后面是一个域名。不过我这边的代码会全部替换成一个空格,这个就不必考虑了。

追答

http://hiphotos.baidu.com/xlzzc/pic/item/a8c095725a251e698601b0f3.jpg
你要源文件吗?

追问

呃,如果不是读取到text1再输出text2而是直接写入一个文件该怎么做呢?
求解答,谢谢

追答

'简化并更加灵活:
Private Sub Command1_Click()
ReadReplaceWirte "E:\1234.txt", "1234", "5678"
'Text1 = ReadReplaceWirte("E:\1234.txt", "1234", "5678")
End Sub
Function ReadReplaceWirte(txtPath As String, oldStr As String, Newstr As String) As String
Dim strLine As String
Dim strBox As String
Open txtPath For Input As #1
Do Until EOF(1)
Line Input #1, strLine
strBox = strBox + strLine + vbCrLf
Loop
Close #1
Open txtPath For Output As #1
ReadReplaceWirte = Replace(strBox, oldStr, Newstr)
Print #1, ReadReplaceWirte
Close #1
End Function

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-05
读取全部内容放在a里
a=replace(a,"1234","5678")
第2个回答  2011-11-06
其实还是使用VB自带的RichTextBox控件来的比较简单
随便加到Load事件或者按钮事件还是哪里
With RichTextBox
.FileName = 文件名
.Text = Replace(.Text, "1234", "5678")
.SaveFile 文件名 , rtfText
End With
第3个回答  2011-11-05
数据类型就是上面的样子,也就是一对一对出现,中间用空格分开,每行都是这样,就简单。而且1234总是在前面。
假如数据结构不是这样的话,方法也会变化的。追问

把您的ctrl、c、v三个键做成钛合金的吧,免得弄坏了。

追答

做任务- -

第4个回答  2011-11-05
下载txt切割工具,很多都带这个功能!求分追问

用工具的话我就不用在这里问了,现在要的是能做这个操作的vb代码。。。。

vb中怎么批量替换特定的字符串?
MsgBox "您没有选择文件或者文件夹中没有txt文件"End Function '写 Sub wirteTxt(namePath As String, txt As String)Open namePath For Output As #1 Print #1, txt Close #1 End Sub '读 Function lineRead(namePath As String) As String '多行数据 Dim strLine As String Dim strBox As...

...同时替换多个字符串,注意是数万个字符批量替换! 使用replace只能做到...
先按源字符串数组中元素的长度排序,这是为了保证长字符串先替换,短字符串后替换,避免重复和遗漏替换...先循环数组将源字符串全部替换成对应的关键字,再循环将关键字替换成要替换字符串...看起来这个方法效率不是很高,但要高效的方法不简单...一时也想不出 ...

excel VB 多个文件批量替换
到底是改文件名还是改EXCEL中的数据呢?还是有多个文件中有AASA这样的内容要替换呢?你得说清楚啊。

vb 如何批量替换某一文件夹下的所有txt文件里面的关键字,哪位大神愿...
用open语句打开一个文件,读所有文本到字符串变量,使用replace()函数替换关键字,然后保存回原文件名。

批量对Excel单元格中指定的“部分文字”,进行内容替换、格式更改!含 ...
Range("A1:B3").Replace "Excel", "Word"代码中的"Range("A1:B3")"定义了查找范围,"Replace "Excel", "Word""则替换目标。对于其他格式修改,如字体、字号、颜色和加粗,可以添加相应语句,如:Rng.Characters(Start:=InStr(Rng, "Word"), Length:=Len("Word")).Font.Name = "微软雅黑"R...

VB\/VB.net 如果实现对Excel单元格中内容的批量替换功能(悬赏可加...
用vba可以实现,不难。要看你具体做什么,下面是一个录制的宏,替换aaa为axa,然后替换bbb为xbx。Sub 宏2()'' 宏2 宏 ''Cells.Replace What:="aaa", Replacement:="axa", LookAt:=xlPart, _SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ReplaceFormat:=False Cells....

VB如何实现,类似WORD的替换功能
这些都有相应的函数的:replace:P=replace(S,S1,S2)用于把s中S1替换为S2然后返回P 例如: P=REPLACE("I‘m Bob","I'm","I am")后,P=“I am Bob”

VB\/VB.net 如果实现对Excel单元格中内容的批量替换功能(悬赏可加...
Dim xlBook As Object Dim xlSheet As Object Dim r, i, arr, j If Dir("c:\\temp.xls") = "" Or Dir("c:\\cfg.txt") = "" Then Unload Me Set xlApp = CreateObject("Excel.Application")Open "c:\\cfg.txt" For Input As #1 arr = Split(StrConv(InputB(LOF(1), 1), vb...

如何用VBA实现WORD批量替换?
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。Private ...

vb实现将txt中所有"?"替换成换行符
'\/\/ '\/\/ 文本批量替换示例 '\/\/ i=0 sch inputbox("输入要搜索的完整路径, 搜索和替换将包括子文件夹","文本搜索替换示例 by MacroChin @Mar 27, 2010")MsgBox CStr(i)&"个文件成功替换。"Sub sch(s)Set fs = CreateObject("Scripting.FileSystemObject")Set fd = fs.GetFolder(s)Set fi ...

相似回答
大家正在搜