Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
ВнизRichEdit->FindText() Проблемы Найти похожие ветки
← →
madm (2003-11-13 18:08) [0]Здравствуйте!
Собственно возникла такая трудность... Есть RichEdit в который я программно пишу текст(на русском и английском). В некоторый момент я пытаюсь найти в этом тексте строку:
int ToEnd = FMain->FEditor->RichEdit1->Text.Length();
int FoundAt = FMain->FEditor->RichEdit1->FindText(TreeView1->Selected->Text, 0, ToEnd - 1, TSearchTypes()<< stMatchCase);
Такой кусок текста в RichEdit точно есть, но не находиться :(
Такие проблемы только с русским когда текст английский то все ищется без проблем.
Может кто сталкивался?
← →
}{enon (2003-11-13 20:23) [1]Странно...
Я поэксперементировал: результат поиска зависит не только от текста, но и от текущей раскладки клавиатуры (?!).
В принципе, можно попробавать так:
result := FloattoStr(Pos(Edit1.Text, RichEdit1.text));
При этом индексация начинается с 1, а перевод строки считается за два символа (#10, #13).
← →
}{enon (2003-11-13 20:41) [2]P.S.:
1)FloatToStr здесь лишний (сорри)
2)Этот код ищет с учетом регистра. Если нужно, чтобы регистр не учитывался, используй AnsiUpperCase:
result := Pos(AnsiUpperCase(Edit1.Text),AnsiUpperCase(RichEdit1.Text));
Вроде бы всё, только (если требуется) замени Edit1.Text на требуемую строку (если я понял вопрос, то на "TreeView1.Selected.Text")
← →
Ru (2003-11-14 09:40) [3]AnsiPos попробуй, но для этого текст надо скопировать из эдита
← →
madm (2003-11-17 15:39) [4]Спасибо, но было интересно именно что это за глюк такой в RichEdit"e. И результат поиска зависит там от нескольких вещей, например если отредактировать этот текст(удалить хотя бы одну букву) руками, а не программно, то все начнет искаться нормально...
Вобще вопрос все еще в силе - почему так происходит???
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c