回 帖 发 新 帖 刷新版面

主题:请教一个代码问题

Sub MultiStringToStringArray(S As String, S2() As String)
'S为我们读取出来的多重字符串
'S2为转换后的字符串数组
Dim count As Integer, pos As Integer, pos2 As Integer, idx As Integer
pos = InStr(S, Chr(0))

While pos > 0 count = count + 1
pos = InStr(pos + 1, S, Chr(0))
Wend
'取得多重字符串中的字符串个数
[color=FF0000]count = count - 1[/color]

ReDim S2(0 To count - 1)
pos = 1
For idx = 0 To count - 1
pos2 = InStr(pos, S, Chr(0))
S2(idx) = Mid(S, pos, pos2 - pos)
pos = pos2 + 1
Next
End Sub


其中的 count=count-1  这里count为什么还要减1呢?

回复列表 (共2个回复)

沙发

你不明白,我也不明白,如果S中不包含Chr(0),那么count = count - 1以后count 岂不成了负值?ReDim S2(0 To count - 1)岂不成了ReDim S2(0 To - 2)?这段代码运行后不出错吗?

板凳


如果 s中没有chr(0)的话,那么开始的pos应该就是0吧,这样应该就不会执行while循环了吧

我来回复

您尚未登录,请登录后再回复。点此登录或注册