Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];




Вниз

HELP!!! Работа с текстом! Поиск множества совпадений! 


КОляныч_   (2002-03-25 19:25) [0]

Мастера, помогите, у меня скоро крыша съедет, перебрал всё что знаю, не получается, вопрос такой, есть http страница, нужно выдергать от туда все ссылки. Страница загружается в TMemo2, например с помощью NMHHTP, далее я это всё беру в переменную S, и беру первую ссылку. Хочу взять вторую и т.д но не ПОЛУЧАЕТСЯ, берётся либо всё время первая, либо вообще ничего. Подскажите, как организовать цикл до конца файла и выдаргать с помощью POS, DELETE, COPY остальные ссылки.

// это нормально работает для первой ссылки
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
a,a1,i:integer;
s,rez:string;
begin
s:=LowerCase(Memo2.Text);
a:=Pos("<a href="",s);
a1:=Pos("</a>",s);
rez:=copy(s,a,a1-a+4);
delete(s,1,a-1);
Memo1.Lines.Add(rez);
end;



panov   (2002-03-25 19:34) [1]

Вот пример поиска подстроки:
//num - номер вхождения подстроки в строку.
function SearchString(const FindStr, SourceString: String;Num: Integer):Integer;
var
FirstP: PChar;
function MyPos(const FindStr, SourceString: PChar;Num: Integer): PChar;
begin
Result := AnsiStrPos(SourceString,FindStr);
if (Result=nil) then Exit;
Inc(Result);
if Num=1 then Exit;
if num>1 then Result := MyPos(FindStr,Result,num-1);
end;
begin
FirstP := PChar(SourceString);
Result := MyPos(PChar(FindStr),PChar(SourceString),Num) - FirstP;
if Result<0 then Result := 0;
end;



КОляныч_   (2002-03-25 19:44) [2]

Спасибо за функцию, нельзя ли ещё уточнить, каким образом её приспособить к примеру выше, т.е. ищется 2 слова, и между ними берётся искомое пространство.



panov   (2002-03-25 19:52) [3]

a := SearchString("<a href="", s,n):
Delete(s,1,a+8);
a := SearchString("</a>", s,n);
Rez := Copy(s,1,a-1);
Delete(s,1,a+4);

и так в цикле...

Позиции для копирования и удаления только проверь...




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.018 c
3-9410            Павел Козловский      2002-03-13 11:23  2002.04.04  
Целостность таблиц


1-9503            dr0Ne64               2002-03-22 21:23  2002.04.04  
Hex,Bin,Dec...


1-9473            Vitaly                2002-03-25 16:31  2002.04.04  
Порядок компонент


14-9634           Владислав             2002-02-22 07:02  2002.04.04  
Олимпиада в SaltLake.


1-9563            lipskiy               2002-03-24 20:30  2002.04.04  
Как присвоить переменной типа Array [0..127] of Char значение переменной типа String?