Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Kleine Unit zum Extrahieren von Links aus einer Textdatei (https://www.delphipraxis.net/158550-kleine-unit-zum-extrahieren-von-links-aus-einer-textdatei.html)

Luckie 22. Feb 2011 01:14

Kleine Unit zum Extrahieren von Links aus einer Textdatei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang eine kleine Unit zum Extrahieren von Links aus einer Textdatei:
Delphi-Quellcode:
type
  TLinkObj = class(TObject)
  public
    RawLink: AnsiString;
    HREF: AnsiString;
    Caption: AnsiString;
  end;


type
  TOnRawLinkFound = procedure(Sender: TObject; Link: AnsiString) of object;
  TOnCaptionFound = procedure(Sender: TObject; Caption: AnsiString) of object;
  TOnHREFFound = procedure(Sender: TObject; HREF: AnsiString) of object;
  TExtractLinksFromTextFile = class(TObject)
  private
    FFilename: AnsiString;
    FLinkList: TObjectList;
    FOnRawLinkFound: TOnRawLinkFound;
    FOnCaptionFound: TOnCaptionFound;
    FOnHREFFound: TOnHREFFound;
    procedure GetRawLinks;
    procedure GetHREF;
    procedure GetCaption;
  public
    property Filename: AnsiString read FFilename write FFilename;
    property LinkList: TObjectList read FLinkList;
    property OnRawLinkFound: TOnRawLinkFound read FOnRawLinkFound write FOnRawLinkFound;
    property OnCaptionFound: TOnCaptionFound read FOnCaptionFound write FOnCaptionFound;
    property OnHREFFound: TOnHREFFound read FOnHREFFound write FOnHREFFound;
    constructor Create;
    destructor Destroy; override;
    procedure ExtractLinks;
  end;
Beispielcode:
Delphi-Quellcode:
procedure TForm14.Button1Click(Sender: TObject);
var
  Links: TExtractLinksFromTextFile;
  Link: TLinkObj;
  i: Integer;
begin
  Memo1.Clear;
  Links := TExtractLinksFromTextFile.Create;
  try
    Links.OnRawLinkFound := OnRawLink;
    Links.Filename := 'D:\Homepage\Admin\Bookmarks.shtml';
    Links.ExtractLinks;
    for i := 0 to Links.LinkList.Count - 1 do
    begin
      Link := TLinkObj(Links.LinkList.Items[i]);
      Memo1.Lines.Add(Link.Caption+': '+ Link.HREF);
    end;
  finally
    Links.Free;
  end;
end;

procedure TForm14.OnRawLink(Sender: TObject; RawLink: AnsiString);
begin
  ShowMessage(RawLink);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz