我有一个字符串Str1
,我希望在Str2
Str1
我的代码是:
Dim TmpMsgGSM As String
Dim ind1 =-1
TmpMsgGSM = "CONFigure:GSM:SIGN"
ind1 = TmpMsgGSM.IndexOf("SIGN")
ind1 = ind1 + 3
TmpMsgGSM.Insert(TmpMsgGSM.IndexOf("SIGN") + ind1, "koko")
我在使用Insert
的行中遇到异常。
我做错了什么?
答案 0 :(得分:0)
以下是您的代码的问题:
Dim TmpMsgGSM As String
Dim ind1 =-1
TmpMsgGSM = "CONFigure:GSM:SIGN"
ind1 = TmpMsgGSM.IndexOf("SIGN")
ind1 = ind1 + 3 '17
'TmpMsgGSM.IndexOf("SIGN") + ind1 = 14 + 17 = 31
TmpMsgGSM.Insert(TmpMsgGSM.IndexOf("SIGN") + ind1, "koko")
表达式TmpMsgGSM.IndexOf("SIGN") + ind1
的值为31
- 超过字符串TmpMsgGSM
的结尾因此异常。
如果您只是TmpMsgGSM.Insert(ind1, "koko")
,那么您将获得字符串"CONFigure:GSM:SIGkokoN"
。您可能需要将4
添加到ind1
而不是3
才能获得"CONFigure:GSM:SIGNkoko"
。
但是,当然,执行此操作的简单方法是TmpMsgGSM = TmpMsgGSM & "koko"
。
更好的是TmpMsgGSM &= "koko"
。