Вот есть код... но мне нужно переписать его для работы не с мемо, а с файлом... Помогите пожалуйста...
| Код | procedure FindURLs(text: string; listURL:TStringList); function NormalizeUrl(var Url:String):Boolean; var i:integer; begin Result:=False; Url:=StringReplace(Url, '#13#10', '', [rfReplaceAll]); i:=Pos(' ', Url); if (i<>0) then Url:=Copy(Url, 1, i-1); Url:=StringReplace(Url, '"', '', [rfReplaceAll]); Url:=StringReplace(Url, '''', '', [rfReplaceAll]); if ((Pos(';', Url)<>0)or (Pos('@', Url)<>0)or (Pos('#', Url)<>0)or (Pos('mailto:', Url)<>0)or (Pos('file://', Url)<>0)) then Exit; if Url='' then Exit; Result:=True; end; var idxPos:Integer; link:string; begin idxPos:=1; listURL.Clear; while True do begin idxPos:=PosEx('<a ', text, idxPos); if idxPos=0 then Break; Inc(idxPos, 2); idxPos:=PosEx('href=', text, idxPos); if idxPos<=0 then Continue; Inc(idxPos, 5); link:=Copy(text, idxPos, PosEx('>', text, idxPos)-idxPos); if (not NormalizeUrl(link)) then Continue; listURL.Add(link); end; end; procedure TForm1.Button1Click(Sender: TObject); var list:TStringList; begin list:=TStringList.Create; FindURLs(AnsiLowerCase(Memo1.Lines.Text), list); Memo1.Lines:=list; list.Free; end;
|
|