Форум: "Основная";
Текущий архив: 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);
и так в цикле...
Позиции для копирования и удаления только проверь...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c