Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

Как грузить в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
8-1088847010
Tahion2
2004-07-03 13:30
2004.09.26
Визуальные эффекты для изображений: Colorize


6-1089786338
Artix
2004-07-14 10:25
2004.09.26
WinSock


1-1094806205
Grim
2004-09-10 12:50
2004.09.26
Запись record в строку


14-1094234338
Profi
2004-09-03 21:58
2004.09.26
Работа с внешними устройствами


3-1093619862
Донской
2004-08-27 19:17
2004.09.26
Locate то работает, то выдает ошибку.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский