Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.16;
Скачать: CL | DM;

Вниз

FindDialog   Найти похожие ветки 

 
Triny   (2003-12-05 09:11) [0]

Уважаемые мастреа, я просто новичок, аоэтому не удивляйтесь моим вопросам.Не подскажите ли вы мне, как написать процедуру для FindDialog?


 
Digitman ©   (2003-12-05 09:21) [1]

какую ? которая ЧТО должна делать ?


 
DeScriptor ©   (2003-12-05 09:50) [2]

Что-то сегодня бум какой-то на поиск текста! =)
Я вот тоже уже большую часть ночи и все утро искалку текста пишу...
Благодаря Digitman (которому за это ГИГАНТСКИЙ респект), уже почти все работает, как только удостоверюсь, что ВСЕ работает, готов запостить код с подробнейшими комментариями.


 
Triny   (2003-12-05 10:04) [3]

что делать? ИСКАТЬ!

Ну я вас очень прошу... мне сёдня ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ нужна эта процедурка....... или двойка по УПК мне светит....


 
Shirson ©   (2003-12-05 10:12) [4]

FindDialog это красивенький спрашиватель, чего искать. Может быть заменён обычным Edit-том и кнопкой "FIND".
То что ты сейчас спросил, это всё равно, что спросить "Мне нужно написать программу для компьютера".

Конекретнее, условия задачи какие?
Просто вызвать FindDialog и получить с него введённые пользователем данные.
Вызвать FindDialog, получить с него данные и провести поиск.
Где поиск? Строка? Коллекция строк? Файл?


 
DeScriptor ©   (2003-12-05 10:12) [5]

Вот Вам сырой код, который еще глючит:
MatchCount:=0;
for i:=0 to High(StringArray)-1 do begin
TempStr:=StringArray[i].Text;
Здесь у меня на 281 итерации вылезает exception "Invalid Pointer Operation". Может у Вас не вылезет.
if not FindWin.MatchCase.Checked then begin
TempStr:=AnsiUpperCase(TempStr);
SearchString:=AnsiUpperCase(SearchString);
end;
if Length(SearchString)>Length(TempStr) then Continue;
for j:=1 to Length(TempStr) do begin
Found:=false;
if SearchString[1]=TempStr[j] then begin
Count:=0;
for k:=j to Length(TempStr) do begin
Count:=Count+1;
if SearchString[Count]=TempStr[k] then Found:=True else break;
if Count=Length(SearchString) then begin
MatchCount:=MatchCount+1;
SetLength(MatchIndexes,MatchCount);
MatchIndexes[MatchCount]:=StringArray[i].Index;
Break;
end else Found:=false;
end;
if Found then break;
end;
if Found then break;
end;
end;

Если заставите его не глючить, отпишите мне. плз, а то я после бессонной ночи уже вообще туго соображаю!


 
DeScriptor ©   (2003-12-05 10:19) [6]

Все в порядке, код работает. Т.е. у меня не совсем работает, но это - как всегда: я глючу с динамическими массивами. =) Где-то дал маху и сейчас никак не могу найти - где...



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

Текущий архив: 2003.12.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
14-52356
Varfolomey
2003-11-23 02:56
2003.12.16
Каккой ОС пользуется Билл Гейтс?


14-52393
delpher_gray
2003-11-19 21:06
2003.12.16
Как найти открытые диски в сети ?


4-52437
adlero4ek
2003-10-20 03:50
2003.12.16
Можно ли определить что система бездействует ?


9-52042
Орлёнок
2003-05-31 10:56
2003.12.16
мерцание имаги...


3-52063
GIL
2003-11-25 12:29
2003.12.16
Очистка поля