0

我需要保存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  

解决此问题的最佳方法是什么?

4

2 回答 2

1

我的建议是你不断向数组中添加东西(不断调整它的大小,因为要添加新元素)。然后,如果需要(以某种块形式),最后您可以将所有字符串合并为一个。或者将它们写入磁盘。

如果你能详细说明你的最终目标是什么,那么可能会有一个更简单、更简单的解决方案。

于 2013-08-20T20:13:05.770 回答
0

来自MSDN

要求为评估创建临时字符串的表达式可能会导致此错误。例如,以下代码在某些操作系统上会导致字符串空间不足错误:

    MyString = "Hello"
    For Count = 1 To 100
    MyString = MyString & MyString
    Next Count

为了解决这个问题,试试这个来自 VBAccelerator 的快速字符串生成器,并解释它是如何工作的。

于 2013-08-21T11:48:46.527 回答