Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-9591
OGR
2002-01-23 11:41
2002.04.04
Как подавить сообщения об ошибках в TWebBrowser?


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


6-9588
KPOT
2002-01-22 14:06
2002.04.04
Sockety


1-9567
VBill
2002-03-19 16:55
2002.04.04
Как узнать какая программа загрузила мою DLL?


7-9655
asafr
2001-07-30 14:11
2002.04.04
Замедление вращения CD-Rom





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский