Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Gewisse Zeile mit bestimmtem Wort aus Memo (html) ausles

  Alt 1. Feb 2008, 17:05
mit folgendem Code ist das leicht möglich:
Delphi-Quellcode:
type
   TOnExtractLink = procedure(const URL:string) of object;
// Extract all Links from Document
procedure ExtractDocumentLinks(Document: IDispatch; callback:TOnExtractLink);
// Extract all Links from Browser's Document
procedure ExtractWBLinks(WebBrowser: TWebBrowser; callback:TOnExtractLink);

...

procedure ExtractDocumentLinks(Document: IDispatch; callback:TOnExtractLink);
var
   doc, links, link : OleVariant;
   i : Integer;
begin
   doc := Document;

   links := doc.links;

   for i:=0 to links.Length-1 do
   begin
      link := links.item(i);
      callback(link.HREF);
   end;
end;

procedure ExtractWBLinks(WebBrowser: TWebBrowser; callback:TOnExtractLink);
begin
   if not Assigned(WebBrowser.Document) then
      Exit;
   ExtractDocumentLinks(WebBrowser.Document, callback);
end;
Du rufst die Procedure ExtractWBLinks() auf und musst allerdings eine Calback-Methode angeben:

Delphi-Quellcode:
  ...
  ExtractWBLinks(WebBrowser1, AddToList);
  ...

procedure TForm1.AddToList(const URL:string);
begin
  // hier wäre Gelegenheit, unerwünschte oder doppelte URL auszufiltern
  
  if copy(URL, 1, 5) = 'http:then
     Memo1.Lines.Add(URL) // hier alle http: URL rein
  else
     Memo2.Lines.Add(URL); // und hier den Rest (ftp:, mailto: ,...)
end;
Andreas
  Mit Zitat antworten Zitat