![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как грузить в TMemo и TRichEdit файл в Unicode ?
массив © (2004-09-08 06:19:00)Можно как-то настроить кодировку или шрифты ? А то в таких файлах полно нулевых символов, и поэтому они грузятся неполностью.
Defunct (2004-09-10 03:03:00) [1]Ищите недопустимые символы, например #0, в стриме (тока тогда не TFileStream, а лучше используйте TMemoryStream). Найдете #0, тогда Read в WideString, нет - в обычный String.
см. справку по TMemoryStream, свойство Memory.
массив (2004-09-10 01:23:00) [2]
> Defunct © (09.09.04 04:29) [6]
> > Программа вылетает с ошибкой.
> Sorry за невнимательность, ошибка здесь Read(WS, Size);
>
>
> Read( Pointer(WS)^, Size);
Да, так работает.
А как можно определить файл в Юникоде или нет ?
Я сначала грузил файл в RichEdit, а потом сравнивал его длину Length(RichEdit1.Lines.Text) c длиной файла, и если она меньше, то значит файл в Юникоде и загрузился неполностью.
Но тут сталкнулся с мегабайтными файлами и обнаружил, что Length(RichEdit1.Lines.Text)давольно сильно тормозит. Можно ли её как нибудь ускорить, или как нибудь по-другому определить файл в Юникоде или нет ?
Defunct (2004-09-09 04:29:00) [3]> Программа вылетает с ошибкой.
Sorry за невнимательность, ошибка здесь Read(WS, Size);
Read( Pointer(WS)^, Size);
массив (2004-09-09 01:20:00) [4]
> Defunct © (08.09.04 06:59) [3]
> Нечто подобное:
Программа вылетает с ошибкой.
> TUser © (08.09.04 08:33) [4]
> Есть еще библиотека специальная. TntUnicodeControls
Я хотел стандартными средствами.
TUser (2004-09-08 08:33:00) [5]Есть еще библиотека специальная. TntUnicodeControls
Defunct (2004-09-08 06:59:00) [6]Нечто подобное:
WS : WideString;
With TFileStream.Create('zzzz',fmOpenRead) Do
Try
SetLength(WS, Size div 2);
Read( WS, Size);
Finally
Free;
End;
RichEdit.Lines.Text := WS;
массив (2004-09-08 06:47:00) [7]Как понять, загрузить в WideString ?
Defunct (2004-09-08 06:39:00) [8]Загрузить в WideString, а потом загнать в Memo или RichEdit.