【发布时间】:2009-07-16 17:17:14
【问题描述】:
在富文本框中存储大量文本时遇到问题。
我正在尝试读取一个相当大的文本文件(从 90mb 到 450mb 不等),并将我读到的内容放入富文本框中。它在一个简单的程序中工作,但是当我在一个复杂的程序中工作时,我得到一个 OutOfMemory 异常。
需要注意的一点是,当我退出我的简单程序时,我在程序返回 0 之前得到了 OutOfMemory 异常。
这是我的简单程序代码:
array<String^>^ strArray;
StreamReader^ sr;
String^ dummyStr;
int dummyInt;
sr = gcnew StreamReader("C:\\testsize.txt");
while( (dummyStr = sr->ReadLine() )!= nullptr)
{
dummyInt++;
}
sr->Close();
sr = gcnew StreamReader("C:\\testsize.txt");
strArray = gcnew array<String^>( dummyInt );
for(int i=0; i < strArray->Length; i++)
{
strArray[i] = sr->ReadLine();
}
richTextBox1->Lines = strArray;
我的项目中有类似的sn-p代码,当我执行richTextBox1->Lines = strArray行时会弹出异常。
我已经阅读了富文本框的文档,它说最大限制是 64KB 的字符,但这在中途是有道理的,因为我可以加载文本,但我猜程序在之后转储它时有问题.
有什么想法吗?我一直在尝试寻找一些没有限制的自定义控件,但到目前为止没有成功。
【问题讨论】:
-
如果您让我们知道这是什么平台/API,也许可以帮助我使用自定义控件。我对 QT 不熟悉,所以可能是这样?
-
Windows Vista、VS2008、C++下
标签: c++ richtextbox limit character