保存大量角色的最佳方法

时间:2013-08-20 19:03:28

标签: string memory-management vb6

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

哪种方法可以解决这个问题?

2 个答案:

答案 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,并说明其工作原理。