![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в тексте
arturich © (2007-03-03 03:50:00)Есть массивный текст в memo1, в нём присутсвуют такие словосочетания: http://неизвестныйтекст.ru
как получить 'неизвестный текст', например, во второй memo2?
заранее спасибо!
arturich (2007-03-03 17:28:00) [21]fd979, всё дело в том, что я не знаю длину искомого текста! я вообще не знаю что это за слово может оказаться.. как мне в таком случае его выделить? должно же быть что-то что может копировать весь текст между указанных мною рамок, в данном случае это http:// и .ru
Dmitrij_K (2007-03-03 10:20:00) [22]как вариант можно использовать регулярные выражения www.regexpstudio.com
fd979 (2007-03-03 09:22:00) [23]Это для того, чтобы выделить искомый текст. Измени под свои нужды.
for I := 0 to Memo1.Lines.Count do
begin
S1 := UpperCase(Memo1.Lines[I]);
PosReturn := Pos(UpperCase(искомый текст), S1);
if PosReturn <> 0 then {found!}
begin
SkipChars := 0;
for J := 0 to I - 1 do
SkipChars := SkipChars + Length(Memo1.Lines[J]);
SkipChars := SkipChars + (I*2);
SkipChars := SkipChars + PosReturn - 1;
Memo1.SetFocus;
Memo1.SelStart := SkipChars;
Memo1.SelLength := Length(искомый текст);
end;
end;
Джо (2007-03-03 05:42:00) [24]Есть такая функция Pos. Возвращает позицию подстроки в строке. И есть такая функция Copy. Копирует указанное кол-во символов начиная с указанной позиции.
arturich (2007-03-03 05:37:00) [25]Джо, нет, мне не нужна часть с http и ru, нужна часть что между ними, причём кол-во символов этой части я не знаю
Джо (2007-03-03 04:30:00) [26]> как получить 'неизвестный текст', например, во второй memo2?
Memo2.Lines.Add(' http://неизвестныйтекст.ru');
И это не стеб, а прямой ответ на вопрос.