Entwickler-Ecke
Sonstiges (Delphi) - HTML Quelltext nach URL durchsuchen
matze - Sa 16.11.02 20:59
Titel: HTML Quelltext nach URL durchsuchen
Hi !!
Also erstmal: Ich habe diese Frage nicht ins Internet Forum gepostet, da sie nicht viel mit I-net zu tun hat !!!
Also hier meine Frage:
Wenn ich einen HTML Quelltext in einem Memo habe, wie bekomme ich dann alle Links in eine ListBox rein ?
Ich hab bei swissdelphicenter schon ein Beipiel gefunden, leider identifiziert das die URLs anhand des vorgehenden "HTTP://" und das bringt bei relativen Links nix. man müsste also nach "href=" suchen.
Leider steh ich voll aufm schlauch und weiss nicht wie ich das lösen soll.
Kann mir jemand helfen ?
Hagbard Celine - Sa 16.11.02 21:49
Wenn Du eine Datei (einen Text) hast kannst Du diese als String verwenden! Die Funktion pos hilft Dir dann das vorkommen des Substringd, in deinem Fall "href" zu finden!
matze - Sa 16.11.02 21:56
danke !!!
aber ich hab hier im forum schon was gefunden !!
das ist wirklich peinlich !!!
normalerweise bin ich einer der leute, die immer meckern wenn einer nicht richtig sucht !!! PEINLICH !!!
TINO, MARC Bitte löschen !!! Danke
Hagbard Celine - Sa 16.11.02 22:03
| matze hat folgendes geschrieben: |
danke !!!
aber ich hab hier im forum schon was gefunden !!
das ist wirklich peinlich !!!
normalerweise bin ich einer der leute, die immer meckern wenn einer nicht richtig sucht !!! PEINLICH !!!
TINO, MARC Bitte löschen !!! Danke |
Kein Thema mir geht das oft genauso! Das Forum ist schon wieder so voll dass man manchmal den Wald vor lauter Bäumen nicht sieht!
Delete - So 17.11.02 00:45
Die HTML-datei befindet sich in einem Memo und die Links werden in eien Listbox geschrieben:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure TForm1.Button1Click(Sender: TObject); var i: Integer; s, s1, s2: String; begin i := 0; Listbox1.Clear; s2 := Memo1.Text; { so lange 'http://' gefunden wird ist pos() > 0 } while pos('http://', s2) > 0 do begin { kopieren der Zeichenfolge ab 'http://' bis zum ersten Vorkommen von '"' -> Linkende } while s1 <> '"' do begin Inc(i); { immer 1 Zeichen nach s1 kopieren } s1 := copy(s2, pos('http://', s2)-1+i, 1); { Überprüfen, ob s1 = ", wenn true Schleife verlassen } if s1 = '"' then break; { Zusammensetzten des Links } s := s + s1; end; { Hinzufügen des Links der in s steht in die Listbox } Listbox1.Items.Add(s); { Da pos() inmer nur das erste Vorkommen eines Teilstrings in einem String findet, wird der Text bis nach dem ersten Vorkommen abgeschnitten } s2 := copy(s2, pos('http://', s2)+Length(s), Length(Memo1.Text)); { Zurücksetzen der Variablen } s := ''; s1 := ''; i := 0; end; Label1.Caption := IntToStr(ListBox1.Items.Count)+ ' Links gefunden'; end; |
Nicht der beste und schnellste Code aber er geht.
Hagbard Celine - So 17.11.02 08:54
Um diesen Code auf das obige Problem anzuwenden muss man noch den String 'http://' durch 'href' ersetzen!!!
Wäre aber bestimmt sinvoll da verschiedene Varianten zu ermöglichen!!!
Frage : Es sollen doch nur tatsächliche verlinkungen gefunden werden, oder???
Dieser Code würde auch jene Links finden welche als Bestandteil eines Textes statisch vorkommen!
matze - So 17.11.02 09:41
nein ich hab hier im Forum ne schönen Kompo gefunden die mir das macht
die ist auf
http://www.jazarsoft.com/vcl/
Nein, Luckie !!! Verkneif dir bitte deinen kommentar :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!