![]() |
Memo nach bestimmtem LINKS durchsuchen.
Hallo
ich moechte gerne eim memo nach allen links durchsuchen. die gefundennen sollen dann alle in einem seperaten memeo abgespeichert werden. BSP für memo 1.
Delphi-Quellcode:
so, diese 2 Links sollen jetzt in ein 2. memo
Text Test
Text TestText Test Text Test [url]www.google.de/linux[/url] Text Test Text [url]www.php.net/downloads.php[/url] Text TestText Test Text TestText Test Text TestText Test untereinander importiert werden. BSP für MEMO 2.
Delphi-Quellcode:
der andere überflüssige text loss also verschwinden.
[url]www.google.de/linux[/url]
[url]www.php.net/downloads.php[/url] villeicht hat ja jemand ne tolle idee mfg Xe0n |
Re: Memo nach bestimmtem LINKS durchsuchen.
|
Re: Memo nach bestimmtem LINKS durchsuchen.
hi ja das iss ja grad das prob ich hab vol delphi noch nicht do viel ahnung
auf die seite die tu gepostet hast bin ich auch schon gestoßen aber ich konnte nicht wirklich viel damit anfangen. hat jemand vllt nen code-schnipsel für mich das würde mit weiterhelfen trotzdem thx für deine fixe antwort no.1 mfg xe0n |
Re: Memo nach bestimmtem LINKS durchsuchen.
oder kannst du mir erklären wie ich die wildcard einsetze
also zb es sind 2 links gegeben. ![]() ![]() der sollalle kopieren die dem muster entsprechen ![]() wenn das fuktioniert mfg xe0n |
Re: Memo nach bestimmtem LINKS durchsuchen.
Hallo xe0n,
was ist das für ein Text, den du nach Links untersuchen willst? Handelt es sich dabei zufällig um den Quelltext einer Web-Seite? Grüße vom marabu |
Re: Memo nach bestimmtem LINKS durchsuchen.
Am einfachsten (wenn man sie dann mal beherrscht) wären IMO Regular Expressions, in Delphi lassen sie sich über zusätzliche Packages nutzen. Für einen einfachen Highlighter (nur www) würde schon
Code:
reichen.
www\.[\S]+
[add]Um auch ein http zuzulassen:
Code:
Spätestens hier wird eine pure Delphi-Lösung mit Pos und Co. zu einem ziemlichen Gefummel.
(http://)?www\.[\S]+
Bessere und dadurch etwas komplexere RegExprs für Links lassen sich schnell im Internet finden. [/add] |
Re: Memo nach bestimmtem LINKS durchsuchen.
hi also ich habs jetzt raus bekommen
ja es handelt sich um einen seitenquelltext was genau ist uninterressant^^ da der quelltext im memo ist brauch ich nur noch die liks zu suche nach einigen stunde recherche bin ich auf diese gestoßen ^^ diesen findet links und schreibt sie in eine listbox PERFECT für mich :coder2: :arrow: hier das script:
Delphi-Quellcode:
von meiner lieblingsseite :mrgreen: :mrgreen: :mrgreen:
{
For this tip you need Memo1, ListBox1, Label1, Button1. Für diesen Tip braucht man ein Memo1, eine ListBox1, ein Label1 und einen Button1. } procedure TForm1.Button1Click(Sender: TObject); var i, p: Integer; s: string; begin ListBox1.Clear; for i := 0 to Memo1.Lines.Count - 1 do begin if Pos('http://', Memo1.Lines.Strings[i]) > 0 then begin s := ''; {If the current line contains a "http://", read on until a space is found Die aktuelle Zeile wird nach der Zeichenfolge "http://" durchsucht und bei Erfolg ab der gefundenen Position ausgelesen, bis ein Leerzeichen auftritt...} for p := Pos('http://', Memo1.Lines.Strings[i]) to Length(Memo1.Lines.Strings[i]) do if Memo1.Lines.Strings[i][p] <> ' ' then s := s + Memo1.Lines.Strings[i][p] else break; {Remove some characters if address doesn't end with a space Falls die gefundene Adresse nicht mit einem Leerzeichen abschließt, werden hier noch anhängende Textzeichen entfernt...} while Pos(s[Length(s)], '..;!")]}?''>') > 0 do Delete(s, Length(s), 1); // Add the Address to the list... //Gefundene Adresse in die Liste aufnehmen... ListBox1.Items.Add(s); end; end; // Show the number of Addresses in Label1 // Die Zahl der gefundenen Adressen in Label1 anzeigen... if ListBox1.Items.Count > 0 then label1.Caption := IntToStr(ListBox1.Items.Count) + ' Adresse(n) gefunden.' else label1.Caption := 'Keine Adresse gefunden.'; end; ![]() mfg xe0n p.s an alle die so schnell helfen wollten :-D :-D :-D |
Re: Memo nach bestimmtem LINKS durchsuchen.
Hallo xe0n,
schön, dass du den für dich passenden Code gefunden hast. Ich lasse mir die Links lieber vom HTML Parser geben und das sieht dann so oder ähnlich aus:
Delphi-Quellcode:
Im Gegensatz zu deinem Code "aus der Schweiz" werden damit auch relative Links gefunden, wobei ich gleich noch die Informationen mit einsammle, die der FireFox in seiner PageInfo unter Links anbietet.
procedure ExtractLinks(doc: IHTMLDocument2; s: TStrings);
var all: IHTMLElementCollection; e: IHTMLElement; i: integer; info: TStrings; url: Variant; begin info := TStringList.Create; all := doc.all; for i := 0 to Pred(all.length) do begin e := all.item(i, 0) as IHTMLElement; url := e.getAttribute('href', 0); if not VarIsNull(url) then begin info.Add(e.innerText); info.Add(url); info.Add(e.tagName); s.Add(info.CommaText); info.Clear; end; end; info.Free; end; Grüße vom marabu |
Re: Memo nach bestimmtem LINKS durchsuchen.
Gibts ne Möglichkeit alle Links als absolute Links anzuzuzeigen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 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