以最大长度和特定字符剪切字符串

Cut a string at max length and specific character

我有一个字符串,其中包含由“;”分隔的值。不幸的是,该程序不能接受超过 4000 个字符。所以如果 len 大于 4000

,我应该每 4000 切一次

问题是我不能切值。如果我在“;”处切入,我很幸运。

那么如何在不削减价值的情况下获得少于 4000 的价值?

您可以从位置 4000 开始,一直向后查找,直到找到一个逗号。此代码创建一个测试字符串,但您可以将 sValues 设置为任何您的值:

Dim sValues
Dim iCounter

For iCounter = 1 To 1000
    If sValues <> "" Then sValues = sValues & ","
    sValues = sValues & "value" & iCounter
Next

If Len(sValues) > 4000 Then

    For iCounter = 4000 To 1 Step -1
        If Mid(sValues, iCounter, 1) = "," Then
            ' Last comma before 4000 is found
            sValues = Left(sValues, iCounter - 1)
            Exit For
        End If
    Next

End If

MsgBox Right(sValues, 10)

我显示最后 10 个字符以验证字符串是否已正确修剪。

另一种方法是使用 Split function 并重新构建字符串,直到达到 4000。