Вниз
Скачать: CL | DM;

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);

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

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



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
3-9354
SkyR
2002-03-11 01:44
2002.04.04
Такой вопрос TQreport...


1-9430
Aleksandr
2002-03-22 13:08
2002.04.04
Как обрезать файловый поток?


1-9437
bobr12
2002-03-22 16:19
2002.04.04
Создание help-файла


1-9581
Александр Богданов
2002-03-25 06:45
2002.04.04
Как перевести TTreeView в режим редактирования узла с помощью клавиатуры ?


1-9539
GMV
2002-03-24 00:35
2002.04.04
Программа для ком порта




   Наверх