Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Link aus Quelltext raussuchen und auflisten (https://www.delphipraxis.net/106300-link-aus-quelltext-raussuchen-und-auflisten.html)

knolli 8. Jan 2008 18:52


Link aus Quelltext raussuchen und auflisten
 
Hallöchen!

ich habe folgendes Problem... Ich möchte ein Programm schreiben, welches mir eine Wortsammlung von Internetseiten zusammstellt.
Dazu hole ich mir den Quelltext einer von mir eingegebenen Startseite und suchen diesen nach Wörtern ab. Damit meine Wortsammlung schön groß wird, möchte ich die im Quelltext gefundenen Links auflisten und nacheinander nach dem gleichen Schema abarbeiten. Wenn das funktioniert, dann müsste das ganze ja unendlich lange gehen nzw bis die Festplatte voll ist(oder halt die DB).
Deswegen möchte ich auch diese PROCEDURE jederzeit unterbrechen können.
mein Problem liegt jetzt darin, dass ich zwar mit POS und COPY den Link lokalisieren und copieren kann, aber keine Länge für COPY angeben kann, da ich ja die Länge des Links nicht kenne. Wie kann man das am besten bewerkstelligen?

was ich bis jetz habe, ist das:

Delphi-Quellcode:
RichEdit_Quellcode.Lines.Add(iDHTTP1.Get('http://'+Editinet.Text)); //<== Protkoll angeben!!!
For i:=1 to RichEdit_Quellcode.Lines.Count do begin
Memo_Links.Lines.Add(Copy(RichEdit_Quellcode.Lines[i],POS('<a href="',RichEdit_Quellcode.Lines[i]),???)));
wo die ??? stehen hörts bei mir auf...
Ich hoffe das mir jemand helfen kann!

mfg
knolli

DP-Maintenance 8. Jan 2008 18:58

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Object-Pascal / Delphi-Language" verschoben.

SirThornberry 8. Jan 2008 18:59

Re: Link aus Quelltext raussuchen und auflisten
 
ein Link wird durch "</a>" abgeschlossen. Wenn du also mit PosEx danach suchst (beginnend ab dem Anfang des Links) so kannst du die Länge errechnen.

knolli 8. Jan 2008 19:04

Re: Link aus Quelltext raussuchen und auflisten
 
wie soll der befehl dann aussehen?

Delphi-Quellcode:
Memo_Links.Lines.Add(Copy(RichEdit_Quellcode.Lines[i],POS('<a href="',RichEdit_Quellcode.Lines[i]),PosEx('</a>',RichEdit_Quellcode.Lines[i]))));
oder wie sorry von PosEx höre ich heute zum ersten mal..

mashutu 9. Jan 2008 08:30

Re: Link aus Quelltext raussuchen und auflisten
 
Zitat:

Zitat von knolli
wie soll der befehl dann aussehen?

Delphi-Quellcode:
Memo_Links.Lines.Add(Copy(RichEdit_Quellcode.Lines[i],POS('<a href="',RichEdit_Quellcode.Lines[i]),PosEx('</a>',RichEdit_Quellcode.Lines[i]))));
oder wie sorry von PosEx höre ich heute zum ersten mal..

Fuer PosEx gibbet hier irgendwo im Forum Code. Aber man kann es auch mit Bordmitteln machen.

Uebersichtlicher waere es vielleicht so (kurz und knackig, aber vielleicht nicht fuer alle Zwecke in dieser Form sinnvoll):
[code=delphi]
s:=RichEdit_Quellcode.Lines[i];
i:=pos('foobar
enthalten. Daher sollte das erste Vorkommen von chr(34) NACH dem Anker das Ende des URI sein.

s-off 9. Jan 2008 08:52

Re: Link aus Quelltext raussuchen und auflisten
 
Zitat:

Zitat von mashutu
Fuer PosEx gibbet hier irgendwo im Forum Code. Aber man kann es auch mit Bordmitteln machen.

PosEx ist ein Bordmittel!
Einfach mal in der Hilfe nachschlagen - dafür ist Sie da...

Dennoch würde ich vielleicht zu dem Beispiel von Marabu greifen

Edit: Rechtschreibfehler korrigiert

mashutu 9. Jan 2008 09:08

Re: Link aus Quelltext raussuchen und auflisten
 
Zitat:

Zitat von s-off
PosEx ist ein Bordmittel!

Stimmt, sorry. Hab PosEx eingegeben und der Compiler kannte es nicht weil StrUtils nicht in der uses-anweisung stand.
Da ich vor zwanzig Jahren meine eigenen Routinen dieser Art geschrieben habe - als es die noch nicht so gab, bin ich nicht imnmer auf der Hoehe der Zeit, was mittlerweile alles mitgeliefert wird. Da ich meine eigenen Bibliotheken einsetze.

[EDIT: mit posex finde ich es jedenfalls unuebersichtlicher:
Delphi-Quellcode:
Memo_Links.Lines.Add(Copy(RichEdit_Quellcode.Lines[i],POS('<a href="',RichEdit_Quellcode.Lines[i]),PosEx('"',RichEdit_Quellcode.Lines[i],POS('<a href="',RichEdit_Quellcode.Lines[i])))));

s-off 9. Jan 2008 09:09

Re: Link aus Quelltext raussuchen und auflisten
 
Zitat:

Zitat von mashutu
Stimmt, sorry.

Sollte kein Vorwurf sein :zwinker:

marabu 9. Jan 2008 09:09

Re: Link aus Quelltext raussuchen und auflisten
 
Hallo,

natürlich lässt sich jeder Text als einfache Folge von Zeichen betrachten und mittels PosEx() und Copy() untersuchen. Berücksichtigt man die besondere Semantik (HTML), dann hilft vielleicht Hier im Forum suchenExtractLinks() weiter.

Freundliche Grüße

mashutu 9. Jan 2008 09:12

Re: Link aus Quelltext raussuchen und auflisten
 
Zitat:

Zitat von s-off
Zitat:

Zitat von mashutu
Stimmt, sorry.

Sollte kein Vorwurf sein :zwinker:

Neee, is schon in Ordnung. Bin immer froh, wenn ich mal ein paar alte Assemblerfunktionen aus meinem Code schmiessen kann und was dazulerne... :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr.
Seite 1 von 3  1 23      

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