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

Вниз

RichEdit и Unicode.   Найти похожие ветки 

 
Юрий К   (2005-01-28 20:46) [0]

Через Copy-Paste в RichEdit заношу Unicode текст (арабский). PlainText := true; Показывает текст RichEdit нормально, вижу арабские каракули в RichEdit окошке.

RichEdit имеет свойства Lines и Text. Можно ли получить доступ к каждой паре байт Unicode символов через них? Кто работал с Unicode текстами в RichEdit? Как смотреть содержимое отображаемого текста? Что-то не понятно пока.

К примеру:
После RichEdit.Lines.SaveToFile получается файл. Если загрузить его по RichEdit.Lines.LoadFromFile, получается полная ерунда.


 
Anatoly Podgoretsky ©   (2005-01-28 20:58) [1]

Ерунда наверно потому что ты делаешь что то неправильно. Или другими словами у тебя ошибка в программе. Нормально сохраняется и загружается.


 
Юрий К   (2005-01-28 21:20) [2]

"Anatoly Podgoretsky"

Мне интересно, каким образом получить доступ к символам?


procedure TForm1.Button1Click(Sender: TObject);
var i, j: Integer; s, sm: String;
begin
 for i := 0 to RE.Lines.Count - 1 do
 begin
   s := RE.Lines[i];
   sm := "";
   for j := 1 to Length(s) do
   begin
     sm := sm + IntToStr(Ord(RE.Lines[i][j])) + " ";
   end;
   Memo.Lines.Add(sm);
 end;
end;


Получаю в Memo следующее:

32 63 63 63 63 63 63 63 63 46

63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 50 48 48 48 32 63 63 63 63 63 32 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 46 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 32 63 63 63 63 32 63 63 63 32 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 32
63 63 63 63 63 32 63 63 63 63 63 63 58

63 63 63 63 63 63 63 32 58 32 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 46 32
63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 58 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 45 32 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 32
63 63 63 63 32 63 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 32 58 32 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32
63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 46 32 63 63 63 32 63 63 63 63 32
63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 46 32 63 63 63 63 63 63 32 63 63 63 63 63 32
63 63 32 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 46 32
63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 32 58 32 63 63 32 63 63 32 63 63 32 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 32
63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 32
63 63 63 63 63 63 63 63 63 46 32 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 46 32 63 63 63 32 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 46 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 32
63 63 63 63 63 63

В RichEdit наблюдаю арабский тект при этом.


 
Юрий К   (2005-01-29 15:54) [3]

Наверное нужно использовать TNTRichEdit - который только для юникод текстов.


 
Anatoly Podgoretsky ©   (2005-01-29 15:59) [4]

TМемо <> TRichEdit
Особенно если учесть, что первый ни в коей мере не поддерживает Юникод, а второй поддерживает.


 
Юрий К   (2005-01-29 16:49) [5]

Anatoly Podgoretsky [4]
"TМемо <> TRichEdit"

Задача для теста (Как раз ветка тут длинная есть по тестированию, вот и навеяло) :

В RichEdit загружен/скопирован юникод текст.
В Мемо нужно распечатать шестнадцатиричное представление данных, которые в RichEdit. Один юникод символ представляется двумя шестнадцатеричными числами, как к примеру по F3 мы видим в WinCmd32, если выбрать в опциях "Hex". То есть примерно выглядеть в Мемо будет так:  1F 04  40 04  38 04  32 04  35 04   42 04, что есть представление слова "Привет".


 
Anatoly Podgoretsky ©   (2005-01-29 17:53) [6]

s типа string, а на текущий момент это ANSI, RE.Lines это также string.


 
Юрий К   (2005-01-30 15:48) [7]

"s типа string, а на текущий момент это ANSI, RE.Lines это также string."

А что мешает в RE.Lines хранить данные вида "1F 04  40 04  38 04  32 04  35 04   42 04", где каждые 2 байта будут заменять один юникод символ. RE.Lines показывает не понятно что. Как же получить доступ к юникод тексту в RichEdit. Только по SendMessage (и как кстати) или есть иной путь, через VCL свойства/методы?



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

Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
1-1107202771
foont
2005-01-31 23:19
2005.02.13
из *.pdf в *.doc


1-1106828861
WhiteGuy
2005-01-27 15:27
2005.02.13
FreeDiskSpace?


1-1106988265
Hadroran
2005-01-29 11:44
2005.02.13
SYSDBA --> masterkey


14-1106433579
i-s-v
2005-01-23 01:39
2005.02.13
Молдова


1-1107157336
Neznaika
2005-01-31 10:42
2005.02.13
Baltic_Charset





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский