我需要保存a lot
个字符,然后,在保存所有信息后,我将使用Print
我尝试将类用作csStringBuilder
,但错误仍然存在。这就是我试图做的事情:
Obs:我知道它离编程很好,但我试过......
Select Case iFlag
Case 0, 1
Length= Len(strCurrentlyData)
If (Len(strCurrentlyData) + Len(strNewData) < (57000000 - Length)) Then
iFlag = 1
strCurrentlyData= strCurrentlyData & strNewData
Else
iFlag = 2
strCurrentlyData2= strCurrentlyData2 & strNewData
End If
Case 2
Length = Len(strCurrentlyData2)
If (Len(strCurrentlyData2) + Len(strNewData)) < (57000000 - Length) Then
strCurrentlyData2= strCartasDeCobranca2 & strNewData
Else
iFlag = 3
strCurrentlyData3 = strCurrentlyData3 & strNewData
End If
我这样做'直到strCurrentlyData10
,但是
尽管我这样做,它会消耗更多memory
...所以,MaxLength
将永远不会相同,这就是我收到此错误的原因:
Out Of String Space
哪种方法可以解决这个问题?
答案 0 :(得分:1)
我的建议是你不断向数组中添加东西(在想要添加新元素时继续调整它的大小)。然后,如果需要(在某种块中),最后可以将所有字符串连接成一个字符串。或者将它们写到磁盘上。
如果你能详细说明你的最终目标是什么,那么可能会有一个更容易,更少hacky的解决方案。
答案 1 :(得分:0)
来自MSDN:
要求为评估创建临时字符串的表达式 可能会导致此错误。例如,以下代码导致Out of 某些操作系统上的字符串空间错误:
MyString = "Hello" For Count = 1 To 100 MyString = MyString & MyString Next Count
要解决此问题,请尝试使用VBAccelerator中的this fast string builder,并说明其工作原理。