不带查找位置:
InStr("Pack a String.", "a") '返回值:2意为"Pack
a
String."中第2个字符就是找查找的字符串"a"的开始位置.
指定开始查找位置:
Instr(3,"pack a string","a") '返回值:6意为在"pack
a
string"中从第3个字符开始查找,"pack
a
string"中第6个字符就是要查找的字符"a".
这在需要从一个字符串找多次查找特定字符串时很好用,比如,从一长段文字中,找出所有的"name",就可以写一个循环:
Dim iFind As Integer
Do
iFind = InStr(iFind + 1, "my name is abc,you name is def", "name")
If iFind >0 Then Print iFind
Loop While iFind >0另外Instr还可以有第四个参数,用于指定查找时,字符串的比较规则,使用常量vbTextCompare可以忽略字符串间大小写的宏猛梁差别,使用0则必需大小写一致才会匹配成功.
对字符串的替换则使用Replace函数,它最少需要三个参数:将被处理的字符串,要被替换的内容,将被替换成的内容,如:
'将所有的"name"替换为"Name"
Dim strText As String
strText = "my name is abc,you name is def"
strText = Replace(strText, "name", "Name")这个函数还有另外三个可选参数,用于指定替换的开始位置,如果前面InStr函数中的iFind的作用,但它是Replace函数的第四个参数.
Replace的第5个参数用于指定替换 *** 作的执行次蔽运数,一知哪个字符串可能有多个"name",如果只需要替换第一个"name",则可以将第五个参数设置为1如果需要替换前5个"name",则将它设置为5默认是全部替换.
最后可选一个参数和Instr的最后一个可选参数的作用是相同的,就不另行说明了.
新建窗体 放腔改上2个textbox和一个按钮然后复制一下 放到代码里:
Option Explicit
Private Sub Command1_Click()
Text2.SelText = Text1.Text
End Sub
Private Sub Form_Load()
Text1 = "替换内容"
Text2 = "亩友你要输入的内容"
Command1.Caption = "替换"
End Sub
Private Sub Text2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "你选中了" &Text2.SelLength &"个伍耐判字符"
End Sub
可能要等三两天才能完成啦,能等吗朋友?补充:
好的,尽管你描述的不详细,我按照我的理解抓紧给你做了!
完成了:
Private Sub Command1_Click()
Dim A As String, B1 As String, B2 As String, I As Integer
Dim T1 As String, T2 As String
T1 = Text1.Text
Open App.Path &"\VB.txt" For Input As #1
Do Until EOF(1)
Input #1, A
For I = 1 To Len(A)
If Mid(A, I, 1) = " "亮拍 Then Exit For
Next
B1 = Trim(Left(A, I))
B2 = Trim(Right(A, Len(A) - I))
T2 = Replace(T1, B1, B2)
T1 = T2
Loop
Close #1
Text1.Text = T2
End Sub
Private Sub Form_Load()
Text1.Text = "我爱你一生一世.我恨你一辈子"
Command1.Caption = "替换"
End Sub
需要在当前目录下建立一个名称为vb.txt的文件,内容是:
我爱你 你敬灶羡爱我
我恨你 你恨我
(还可以再输入其它的内容,但必须是相同格式)
再补充:
你所举的例子之所以出现错误,是因为它有一点不妥,注意要更换的字符中不能含有半角逗号(,)。因为VB读vb.txt中的信息时,默认把“,”与换行符号一样辩腊对待了。
解决这个问题,如果非要使用逗号,建议使用全角逗号(,)就可以了。
不知道能否解决你的困惑?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)