今天想用vb中的replace 字符串替換函數,發現了一個問題
那就是替換後的字符串前部分會被截掉
目的把str中的234換成555
str=111234
find=234
str1=555
st=4
BARCODE = Replace(str, find, str1, st, 1)
結果BARCODE =555
前半部分被截掉
所以只能用left()函數截取前半部分然後+替換後的字符串
http://hi.baidu.com/cbm666/blog/item/e43676098d5e26ad2fddd420.html
'将 A 替换为 x
'添加 Text1 Text2 Command1
Dim startc%, rcount%
Private Sub Form_Load()
Text1.Text = "123A456A789aBCDEA"
End Sub
Private Sub Command1_Click()
'********************** 第一种用法 *********************** 无条件全部替换
Text2.Text = Replace(Text1.Text, "A", "x")
'********************** 第二种用法 *********************** 从第一位开始只替换3次
'rcount = 3
'Text2.Text = Replace(Text1.Text, "A", "x", , rcount)
'********************** 第三种用法 *********************** 从前面算起第5位开始全部替换
'startc = 5
'Text2.Text = Left(Text1.Text, startc - 1) & Replace(Text1.Text, "A", "x", startc)
'********************** 第四种用法 *********************** 从前面算起第6位开始替换2次
'startc = 6
'rcount = 2
'Text2.Text = Left(Text1.Text, startc - 1) & Replace(Text1.Text, "A", "x", startc, rcount)
'********************** 第五种用法 *********************** 不分大小写的替换
'Text2.Text = Replace(Text1.Text, "a", "x", , , vbTextCompare)
End Sub
'******************************************************************************
Replace函数
描述
返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。
语法
Replace(expression, find, replacewith[, start[, count[, compare]]])
Replace函数语法有如下几部分:
部分 描述
expression 必需的。字符串表达式,包含要替换的子字符串。
find 必需的。要搜索到的子字符串。
replacewith 必需的。用来替换的子字符串。
start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。
count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 -1,它表明进行所有可能的替换。
compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数 值 描述
vbUseCompareOption -1 使用Option Compare语句的设置值来执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
返回值
Replace的返回值如下:
如果 Replace返回值
expression长度为零 零长度字符串("")。
expression为Null 一个错误。
find长度为零 expression的复本。
replacewith长度为零 expression的复本,其中删除了所有出现的find 的字符串。
start > Len(expression) 长度为零的字符串。
count is 0 expression.的复本。
说明
Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。