VB实现一个功能

来源:百度知道 编辑:UC知道 时间:2024/05/05 12:59:35
我要实现一个功能:有一个文本框,存放用户要处理的文本,还有三个文本框,分别存放前面一个字符串和后面一个字符串,以及要替换的字符串(不太好理解,坚持看完,我们用实例说话)

比如文本框一(用户存放要处理的内容)为
asd hkjdfhkdjfh dsa
asd fhsdkjhfkjsdjkasdhkj dsa
asd 9e812h dsa

文本框二(存放前面哪个字符串)为asd
文本框三(存放后面哪个字符串)为dsa
文本框四(替换后的字符串)为qq123

希望得到的效果是:
asd qq123 dsa
asd qq123 dsa
asd qq123 dsa

如果是
982u8912uwaiou asd skjdhaskjncdskjcnskajakhk dsa asdasd
<> <> <98u9 asd 312897389123 dsa asdsad

替换为
982u8912uwaiou asd qq111 dsa asdasd
<> <> <98u9 asd qq111 dsa asdsad

其实就是把2用户输入前面的字符串和后面间的字符串的中间的字符串替换为用户指定的字符串

说明白点!

假设最终结果用text5存放,则
text5.text=left(text1.text,len(text2.text)) & text4.text & rignt(text1.text,len(text3.text)
也就是说text5显示的文本=text1的文本从左取text2的位数加上text4的文本再加上text1的文本从右取text3的位数。
在你的例子中实际结果就是:
text5.text=left("asd hkjdfhkdjfh dsa" ,3) & "qq123" & ringt("asd hkjdfhkdjfh dsa",3)
其中&是字符连接操作符,left和right函数分别用来取字符串,也就是说,你的text2和text3是什么并不重要,只要它们分别在左、右,用他们的位数从text1中取就可以了,不知道这么说你明白没有?

Dim R As String, Sh As String, Mo As String, Ti As String, i As Integer, j As Integer
R = Text1.Text
Sh = Text2.Text
Mo = Text3.Text
Ti = Text4.Text
i = InStr(R, Sh)
j = InStr(R, Mo)
If i < j Then
R = Left(R, i - 1) + Sh + " " + Ti + " " + Right(R, Len(R) - j + 1)
Text5.Text = R
Else
MsgBox "首尾定义字符错位!"
End If