Autor Beitrag
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Sa 16.11.02 20:59 
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 ?

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Hagbard Celine
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 119



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: 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

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Hagbard Celine
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 119



BeitragVerfasst: 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!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 17.11.02 00:45 
Die HTML-datei befindet sich in einem Memo und die Links werden in eien Listbox geschrieben:
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 119



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 17.11.02 09:41 
nein ich hab hier im Forum ne schönen Kompo gefunden die mir das macht
die ist auf www.jazarsoft.com/vcl/


Nein, Luckie !!! Verkneif dir bitte deinen kommentar :wink:

_________________
In the beginning was the word.
And the word was content-type: text/plain.