У меня проблема с хранением огромного количества текста в богатом текстовом поле.
Я пытаюсь прочитать довольно большой текстовый файл (от 90 до 450 МБ) и поместить то, что я прочитал, в расширенное текстовое поле. Это работает в простой программе, но когда я делаю это в сложной программе, я получаю исключение OutOfMemory.
Следует отметить, что когда я выхожу из своей простой программы, я получаю исключение OutOfMemory прямо перед тем, как программа возвращает 0.
Вот код моей простой программы:
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;
У меня есть аналогичный фрагмент кода в моем проекте, и исключение появляется, когда я делаю строку richTextBox1->Lines = strArray.
Я прочитал документацию по расширенному текстовому полю, и в нем говорится, что максимальное ограничение составляет 64 КБ символов, но это имеет смысл на полпути, так как я могу загрузить текст, но я предполагаю, что у программы есть проблемы с его сбросом после этого.
Любые идеи? Я пытался найти, возможно, некоторые пользовательские элементы управления без ограничений, но пока безуспешно.