Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Как грузить в TMemo и TRichEdit файл в Unicode ?   Найти похожие ветки 

 
массив   (2004-09-08 06:19) [0]

Можно как-то настроить кодировку или шрифты ? А то в таких файлах полно нулевых символов, и поэтому они грузятся неполностью.


 
Defunct ©   (2004-09-08 06:39) [1]

Загрузить в WideString, а потом загнать в Memo или RichEdit.


 
массив   (2004-09-08 06:47) [2]

Как понять, загрузить в WideString ?


 
Defunct ©   (2004-09-08 06:59) [3]

Нечто подобное:

 WS : WideString;

 With TFileStream.Create("zzzz",fmOpenRead) Do
 Try
   SetLength(WS, Size div 2);
   Read( WS, Size);
 Finally
   Free;
 End;

 RichEdit.Lines.Text := WS;


 
TUser ©   (2004-09-08 08:33) [4]

Есть еще библиотека специальная. TntUnicodeControls


 
массив   (2004-09-09 01:20) [5]


> Defunct ©   (08.09.04 06:59) [3]
> Нечто подобное:

Программа вылетает с ошибкой.


> TUser ©   (08.09.04 08:33) [4]
> Есть еще библиотека специальная. TntUnicodeControls

Я хотел стандартными средствами.


 
Defunct ©   (2004-09-09 04:29) [6]

> Программа вылетает с ошибкой.
Sorry за невнимательность, ошибка здесь Read(WS, Size);

Read( Pointer(WS)^, Size);


 
массив   (2004-09-10 01:23) [7]


> 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-10 03:03) [8]

Ищите недопустимые символы, например #0, в стриме (тока тогда не TFileStream, а лучше используйте TMemoryStream). Найдете #0, тогда Read в WideString, нет - в обычный String.

см. справку по TMemoryStream, свойство Memory.



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
1-1094546741
Black
2004-09-07 12:45
2004.09.26
Как создать копию Form


1-1094728904
Aleksandr
2004-09-09 15:21
2004.09.26
Убрать окно с экрана


14-1094265307
Думкин
2004-09-04 06:35
2004.09.26
С днем рождения! 4 сентября


4-1092316732
axelrod
2004-08-12 17:18
2004.09.26
Регистрация в системном реестре


1-1094558683
shc
2004-09-07 16:04
2004.09.26
Как отследить утечки памяти