медленно, чтобы присвоить значение TMemo, когда строковый источник является файлом

Я генерирую текст (только стандартные альфа-символы) в std::string преобразование в char[]массив wchar и присвоение его блоку TMemo … (c ++ Builder.) В другой точке (функции) я читаю (что должно быть то же самое) текст из файла и загружаю его в std::string преобразование в char[]массив wchar и снова загрузите текст в поле TMemo. Все работает.

При создании строки она очень быстро загружается в поле TMemo с помощью функции, приведенной ниже … Однако при загрузке строки из текстового файла она внезапно замедляется до сканирования, примерно в 10 раз медленнее или хуже, хотя код для обоих то же самое, исключая начальное чтение или создание строки …

Более того, единственная медленная часть этой функции — это строка

Form1->Memo1->Text = uni_out;

Если я закомментирую эту строку, замедления нет …

Есть мысли о том, почему?

void print_txt(char asc_in[])
{
wchar_t *uni_out = new wchar_t[ strlen(asc_in) + 1 ]; // + 1 for term 0
std::mbstowcs(uni_out, asc_in, strlen(asc_in) + 1);
Form1->Memo1->Text = uni_out;
delete[] uni_out;
}

РЕДАКТИРОВАТЬ:

Я только что заметил, что когда текстовый файл читается, его форматирование исчезает … \ r \ n создает новые строки при открытии файла с помощью блокнота, но при открытии с помощью std :: ifstream, std :: getline форматирование полностью исчезает, и хотя я еще не подтвердил это, я думаю, что он читает весь файл в одну строку.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]