以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]返回字符串长度出错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=69686) |
-- 作者:青鸟 -- 发布时间:2015/6/9 13:43:00 -- [求助]返回字符串长度出错 下面代码中,红色部分报错:索引和长度必须引用该字符串内的位置。参数名: length。请问,为什么,怎么修改? Dim xmmcjh As New List(Of String()) \'项目名称_集合 xmmcjh = DataTables("合同or费用台账").GetValues("项目代码|子项目代码") \'列名用符号|分割_集合 For Each xmmcsz As String() In xmmcjh \'项目名称_数组 Dim xmmc As String xmmc = String.join("|",xmmcsz) msgbox(xmmc) Dim xmdm As String \'项目代码 Dim zxmdm As String \'子项目代码 Dim wzz As Integer \'| 出现位置长度 Dim l As Integer \' wzz = xmmc.IndexOf("|") msgbox(wzz) l = xmmc.Length xmdm = xmmc.SubString(0,wzz) zxmdm = xmmc.SubString(wzz + 1,l) msgbox(xmdm) msgbox(zxmdm) next
|
-- 作者:Bin -- 发布时间:2015/6/9 14:03:00 -- xmdm = xmmc.SubString(0,wzz) zxmdm = xmmc.SubString(wzz + 1,l) 错误代码是这两句 你用SUbstring的话.要确保字符足够长. 否则你字符串长度为5 你要切割 1-10的字符串.肯定报错 加入if 判断 if xmmc.length >wzz then mdm = xmmc.SubString(0,wzz) end if if xmmc.length >=(wzz+1+I) then zxmdm = xmmc.SubString(wzz + 1,l) end if |
-- 作者:大红袍 -- 发布时间:2015/6/9 14:03:00 -- zxmdm = xmmc.SubString(wzz + 1,l)
改成
zxmdm = xmmc.SubString(wzz + 1) |
-- 作者:青鸟 -- 发布时间:2015/6/9 14:56:00 -- 谢谢Bin,谢谢大红袍,基础太差,出点错就不知所以。 |