![]() |
Gewisse Stelle aus einem Text abspeichern.
Hallöchen :),
suche eine Funktion bzw einen kleinen Rat um auf einem kompletten text immer abschnitte rauszusuchen und abzuspeichern. Habe hier einen Quelltext vor mir mit einer menge(!) von Links, Beispiel: ( nein, die Links haben keine beschriftung :) ). Nun möchte ich alles was im Text (egal wo) zwischen * <a href=" * und * "> * steht abspeichern. Werde es wohl nacher einfach in eine memo schreiben lassen , allerdings weiss ich nicht , wie ich diese Abschnitte suche, und vor allem immer den Link rauskopiere. PS: hoffe dass ich bei der Suchaktion nichts übersehen habe. Danke im Vorraus CC :bounce1: |
Re: Gewisse Stelle aus einem Text abspeichern.
Eine Möglichkeit wäre so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s, s1 : String; Pos1, Pos2 : Integer; begin s := '[url="index.php?id=1"][/url]'; Pos1 := PosEx('"', s, 1); Pos2 := PosEx('"', s, Pos1 + 1); s1 := Copy (s, Pos1 + 1 , Pos2 - Pos1 - 1); showmessage('Pos1 ' + IntToStr(Pos1) + #13#10 + 'Pos2 ' + IntToStr(Pos2) + #13#10 + 'Link ' + s1); end; |
Re: Gewisse Stelle aus einem Text abspeichern.
oder so
Delphi-Quellcode:
Grüße
Function extracturl(link:string):String;
begin link:=copy(link,pos('"',link),length(link)); link:=copy(link,1,pos('"',link)-1); result := link; end; s:=extractURL('[url="index.php?id=1"][/url]'); Klaus |
Re: Gewisse Stelle aus einem Text abspeichern.
@Klaus01
Die erste Zeile Deiner Funktion löscht das linke Anführungszeichen nicht, es wird somit beim zweiten Pos() erneut gefunden. Hier die korrigierte Version:
Delphi-Quellcode:
Vielleicht sollte man auch noch eine Überprüfung einbauen, ob überhaupt ein URL im String enthalten ist.
function ExtractURL (const aLink: string): string;
begin Result := Copy(aLink, Pos('"', aLink) + 1, MaxInt); Result := Copy(Result, 1, Pos('"', Result)-1); end; Gruß Hawkeye |
Re: Gewisse Stelle aus einem Text abspeichern.
Suche mal nach
![]() Der Regex "| ![]() Ach ja: ![]() EDIT: man kann die url natürlich noch beschränken, so dass nur "echte" urls gefunden werden - aber ich denke, das ist unnötig |
Re: Gewisse Stelle aus einem Text abspeichern.
Ne andere Möglichkeit wäre
![]() ![]() ![]() mfg Christian |
Re: Gewisse Stelle aus einem Text abspeichern.
@Hawkeye219
Danke! Grüße Klaus |
Re: Gewisse Stelle aus einem Text abspeichern.
Hallo.
Da es sich bei dem Text offensichtlich um HTML-Code handelt, würde ich ihn auch als solchen behandeln. Mit der Prozedur ExtractLinks() werden alle hyperlinks aus einem HTML-Document heraus geholt, auch wenn sie nicht Attributwert eines Anchor-Elements sind:
Delphi-Quellcode:
Grüße vom marabu
procedure ExtractLinks(doc: IHTMLDocument2; s: TStrings);
var ec: IHTMLElementCollection; e: IHTMLElement; i: integer; url: Variant; begin ec := doc.links; for i := 0 to Pred(ec.length) do begin e := ec.item(i, 0) as IHTMLElement; url := VarToStr(e.getAttribute('href', 0)); if url <> '' then s.Add(url); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz