Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск русского текста в RichEdit


A1ex ©   (2004-03-22 14:27:00) 

Вопрос такого плана. В RichEdit осуществляется поиск кусков текста. Если это английский - проблем нет, все работает. Если искомый текст - кирилица, то упрямо не видит его при поиске. Должно ли так быть и если да, то как можно обойти. Не охота самому писать продцедуру поиска... Текст загружается из  файла как reText. KOL1.90
WinXP если это важно.


<Falcon>   (2004-03-29 18:39:00) [1]

Уже сделал :-)  Хотелось просто с этим разобраться... Особенно почему

 Dest:=RichEdit1.Items[1];

мусор выдает.


Gandalf   (2004-03-29 17:13:00) [2]

M$ по этому поводу молчит, попробуй дедовский способ через Pos.


<Falcon>   (2004-03-29 16:10:00) [3]

Вот код:

procedure TForm1.Button1Click(Sender: PObj);
var
Dest : string;
begin
 if OpenSaveDialog1.Execute then
   begin
     RichEdit1.RE_LoadFromFile(OpenSaveDialog1.Filename,reText,False);
     Dest:=RichEdit1.Items[1];
     ShowMessage(Dest);
   end;
end;

procedure TForm1.Button2Click(Sender: PObj);
var
RF : integer;
begin
//  ActivateKeyboardLayout(LoadKeyboardLayout('00000419',KLF_ACTIVATE), KLF_REORDER);
 RF:=RichEdit1.RE_SearchText(EditBox1.Text,True,True,True,0,-1);
 if RF >=0 then
   begin
     RichEdit1.SelStart:=RF;
     RichEdit1.SelLength:=Length(EditBox1.Text);
   end else ShowMessage('String not found!');
end;

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
 RichEdit1.Font.FontCharset:=RUSSIAN_CharSet;
end;

end.

Текстовый файл - для примера 1 сторока : 'some text  и тут текст'
Вот собственно и все...


Gandalf   (2004-03-25 22:52:00) [4]

Повоторюсь - код в студию! Ваш Код поиска.


<Falcon>   (2004-03-25 11:36:00) [5]

Между прочим, о поиске, обнаружил вот такую забавную вещь.
Если присвоить строковой переменной значение строки RichEdit, то
вместо кирилицы получим мусор. т.е.
RichEdit1.Items[i]    ---    'some text   и тут текст'
 теперь делаем:
             Str:=RichEdit1.Items[i];
 имеем:
Str    --- 'some text   "а тут уже мусор"'  

Естесвенно имеется в виду что текст загружен как reText.

Теперь еще вопрос, почему при поиске кирилицы имеет значение текущая расскладка клавиатуры. При русской - текст находится, при английской - нет. Это как-то нехорошо.

Кто может просвятить?


<Falcon>   (2004-03-23 09:27:00) [6]

Проверь свойства AutoKeybdSet, AutoKeyboard


Gandalf   (2004-03-22 18:18:00) [7]

Код в студию.


Наверх

Титульная страница Поиск, карта сайта Написать письмо