Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
Memo Найти похожие ветки
← →
HunTeR_IzV © (2005-08-31 20:33) [0]В поле Memo1 надо найти определенный текст, после которого сдвинуть каретку на заданное заранее колличество символов, скопировать идущий дальше текст в буфер, вставить в поле Memo2 и повторять до самого конца Memo1... Все найденные мной алгоритмы поиска по Memo ничего толком не дали :( Может, искал плохо. Помогите, плиз, хоть частично
← →
Dispirited Zeqfreed (2005-08-31 21:40) [1]HunTeR_IzV © (31.08.05 20:33)
Вот код, делает то, что ты написал, насколько я это все понял:function PervertedMemoSearching(const TextToFind : String;
const MemoSrc, MemoDst : TMemo;
const ClearDest : boolean = true) : boolean;
const
MoveBy_value = 3;
var
p : Integer;
MemoText : String;
begin
Result := false;
if ClearDest then MemoDst.Clear;
MemoText := MemoSrc.Text;
p := Pos(TextToFind, MemoText);
while (p > 0) do begin
MemoSrc.SelStart := p + MoveBy_value + length(TextToFind);
MemoSrc.SelLength := 0;
MemoText := Copy(MemoText, MemoSrc.SelStart, length(MemoSrc.Text));
MemoDst.Text := MemoDst.Text + MemoText;
p := Pos(TextToFind, MemoText);
end;
end;
Теперь вопросы, которые у меня возникли:
Какой смысл в передвигании каретки? Если ты думаешь, что это необходимо для копирования или поиска - это не так.
> скопировать идущий дальше текст в буфер
Идущий дальше до конца текста в мемо или он дожен заканчиваться какой-то определенной последовательностью символов?
> Все найденные мной алгоритмы поиска по Memo
А какие алгоритмы ты нашёл?
← →
Dispirited Zeqfreed (2005-08-31 21:44) [2]Dispirited Zeqfreed (31.08.05 21:40) [1]
Ой. Хотел придать изменению позиции каретки хоть какой-то смысл - в итоге она не корректно будет двигаться относительно найденного текста в мемо. Но код, в общем, работает :) Т.е. если смысл именно в передвижении каретки, то нужно внести пару изменений ;))
Страницы: 1 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.012 c