以最大长度和特定字符剪切字符串
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。
我有一个字符串,其中包含由“;”分隔的值。不幸的是,该程序不能接受超过 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。