Delphi-PRAXiS

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... :-)

s-off 9. Jan 2008 09:15

Re: Link aus Quelltext raussuchen und auflisten
 
Zitat:

Zitat von marabu
Berücksichtigt man die besondere Semantik (HTML), dann hilft vielleicht Hier im Forum suchenExtractLinks() weiter.

Sag ich doch (wusste, dass Du irgendwann mal etwas dazu geschrieben hast, habe es nur noch mehr so schnell wiedergefunden) :zwinker:

knolli 9. Jan 2008 10:54

Re: Link aus Quelltext raussuchen und auflisten
 
Sorry mit dem ExtractLinks() kann ich nix anfangen...

ich hab das hier mal gestestet mit google.de

Delphi-Quellcode:
Memo_Links.Lines.Add(Copy(Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i]),PosEx('">',Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i]))));
und raus kommt das hier:

Delphi-Quellcode:
charset=UTF-8"

















































href="http://images.google.de/imghp?hl=de&tab=wi"

href="http://maps.google.de/maps?hl=de&tab=wl"

href="http://news.google.de/nwshp?hl=de&tab=wn"

href="http://www.google.de/prdhp?hl=de&tab=wf"

href="http://mail.google.com/mail?hl=de&tab=wm"


onclick="this.blur();gbar.tg(event);return false"


href="http://blogsearch.google.de/?hl=de&tab=wb"

href="http://books.google.de/bkshp?hl=de&tab=wp"

href="http://docs.google.com/?hl=de&tab=wo"

href="http://picasaweb.google.de/home?hl=de&tab=wq"

href="http://groups.google.de/grphp?hl=de&tab=wg"

href="http://www.google.com/calendar?hl=de&tab=wc"

href="http://www.google.de/reader?hl=de&tab=wy"

href="http://video.google.de/?hl=de&tab=wv"

href="http://www.google.de/intl/de/options/"




hl%3Dde&usg=AFQjCNEuFEstOqdyi_oJiIgrhN9DEbl2cA"


/www.google.de/&hl=de"






title="Google-Suche" value=""
type=submit value="Google-Suche"
type=submit value="Auf gut Glück!"






style="text-align:left"

type=radio name=meta value="lr=lang_de"

value="cr=countryDE"
ich meine hier sind ein paar links drin aber es findet wie man sehen kann unendlich viele leere Zeilen und auch noch anderes zeug, was keine links sind...

was noch ist, von denlinks die hier gefunden wurden, bracuhe ich das ganze OHNE href=" was muss ich noch ändern damit das nicht mit erscheint? ich meine wwenn ich noch +7 also 7 zeichen später anfange stehet zum ende noch anderes zeug da zb:

Delphi-Quellcode:
http://news.google.de/nwshp?hl=de&tab=wn">News<

http://www.google.de/prdhp?hl=de&tab=wf">Shopp

http://mail.google.com/mail?hl=de&tab=wm">Mail<


k="this.blur();gbar.tg(event);return false"><u>Me


http://blogsearch.google.de/?hl=de&tab=wb">Blogs

http://books.google.de/bkshp?hl=de&tab=wp">Büche

http://docs.google.com/?hl=de&tab=wo">Dokum

http://picasaweb.google.de/home?hl=de&tab=wq">Fotos

http://groups.google.de/grphp?hl=de&tab=wg">Group

http://www.google.com/calendar?hl=de&tab=wc">Kalen

http://www.google.de/reader?hl=de&tab=wy">Reade
also wie kann ich das umgehen, dass neben dem Link auch noch anderes drinsteht?

mashutu 9. Jan 2008 10:58

Re: Link aus Quelltext raussuchen und auflisten
 
Kannst du mal die eigentlichen Daten posten?

s-off 9. Jan 2008 10:59

Re: Link aus Quelltext raussuchen und auflisten
 
Das 'href' steht drin, da Du Deine Copy-Funktion nicht bei Pos('a href'...) losschicken darfst, sondern erst danach., Du musst also noch die Länge von 'a href' zu der Position dazu addieren.
Schau Dir dazu das Beispiel von mashutu an.

Mit Deinem ganzen Vorhaben wirst Du so aber trotzdem nicht weit kommen. Und ich verstehe auch nicht, warum Du nicht das Beispiel von marabu aufgreifst... naja, Deine Sache.

Reguläre Ausdrücke wären eine weitere Möglichkeit.

knolli 9. Jan 2008 11:25

Re: Link aus Quelltext raussuchen und auflisten
 
also nochmal neu!
ich habe bis jetz:
Delphi-Quellcode:
unit U_Test;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, StrUtils;

type
  TForm1 = class(TForm)
    Memo_Quellcode: TMemo;
    Memo_Links: TMemo;
    Button1: TButton;
    Button2: TButton;
    Memo_fertig: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo_Links.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to Memo_Quellcode.Lines.Count do
//                        String wo kopiert wird #=============== von WO =================#============================== WIE WEIT ====================================
Memo_Links.Lines.Add(Copy(Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i])+7,PosEx('">',Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i]))));
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
For i:=1 to Memo_Links.Lines.Count do
begin
Memo_fertig.Lines.Add(COPY(Memo_Links.Lines[i],0,Length(memo_Links.Lines[i])-7));
end;
end;

end.
es kommt das raus:

Delphi-Quellcode:
t=UTF-8

















































[url]http://images.google.de/imghp?hl=de&tab=wi[/url]

[url]http://maps.google.de/maps?hl=de&tab=wl[/url]

[url]http://news.google.de/nwshp?hl=de&tab=wn[/url]

[url]http://www.google.de/prdhp?hl=de&tab=wf[/url]

[url]http://mail.google.com/mail?hl=de&tab=wm[/url]


k="this.blur();gbar.tg(event);return false


[url]http://blogsearch.google.de/?hl=de&tab=wb[/url]

[url]http://books.google.de/bkshp?hl=de&tab=wp[/url]

[url]http://docs.google.com/?hl=de&tab=wo[/url]

[url]http://picasaweb.google.de/home?hl=de&tab=wq[/url]

[url]http://groups.google.de/grphp?hl=de&tab=wg[/url]

[url]http://www.google.com/calendar?hl=de&tab=wc[/url]

[url]http://www.google.de/reader?hl=de&tab=wy[/url]

[url]http://video.google.de/?hl=de&tab=wv[/url]

[url]http://www.google.de/intl/de/options/[/url]




e&usg=AFQjCNEuFEstOqdyi_oJiIgrhN9DEbl2cA


oogle.de/&hl=de






"Google-Suche" value="
ubmit value="Google-Suche
ubmit value="Auf gut Glück!






"text-align:left

adio name=meta value="lr=lang_de

"cr=countryDE
was ich jetzt noch wissen muss, ist wie ich den überflüssigen schriebs entfernen kann...
@s-off: warum werde ich damit nich tweit kommen?
und ich habe mir das beispiel angeschaut, aber ich finde es zu kompliziert. ich kann da einfach nix draus lesen (sorry aba da bin ich vllt zu blöd dafür)

mashutu 9. Jan 2008 11:37

Re: Link aus Quelltext raussuchen und auflisten
 
Nein, ich wollte eigentlich die Daten haben die du LIEST. Die Rohdaten also - nicht den Quelltext!

knolli 9. Jan 2008 14:43

Re: Link aus Quelltext raussuchen und auflisten
 
oh...

naja also hier meine rohdaten:

Delphi-Quellcode:
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Google</title><style>body,td,a,p,.h{font-family:arial,sans-serif}.h{font-size:20px}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}#gbar{float:left;font-weight:bold;height:22px;padding-left:2px}#gbh{border-top:1px solid #c9d7f1;font-size:0;height:0;position:absolute;right:0;top:24px;width:200%}#gbi{background:#fff;border:1px solid;border-color:#c9d7f1 #36c #36c #a2bae7;top:24px;z-index:1000}#guser{padding-bottom:7px !important}#gbar,#guser{font-size:13px;padding-top:1px !important}@media all{.gb1,.gb3{height:22px;margin-right:.73em;vertical-align:top}}#gbi,.gb2{visibility:hidden;position:absolute}.gb2{z-index:1001}#gbar a,#gbar a:active,#gbar a:visited{color:#00c;font-weight:normal}.gb2 a,.gb3 a{text-decoration:none}.gb2 a{display:block;padding:.2em .5em}#gbar .gb2 a:hover{background:#36c;color:#fff}</style><script>window.google={kEI:"Xt2ER7mRHYKAnQOhiuRD",kEXPI:"17259,17735",kHL:"de"};
function sf(){document.f.q.focus()}
window.clk=function(b,c,d,e,f,g){if(document.images){var a=encodeURIComponent||escape;(new Image).src="/url?sa=T"+(c?"&oi="+a(c):"")+(d?"&cad="+a(d):"")+"&ct="+a(e)+"&cd="+a(f)+(b?"&url="+a(b.replace(/#.*/,"")).replace(/\+/g,"%2B"):"")+"&ei=Xt2ER7mRHYKAnQOhiuRD"+g}return true};
window.gbar={};(function(){;var i=window.gbar,a,n,b,o="visible";function p(c,g,f){c.visibility=c.visibility==o?"hidden":o;c.left=g+"px";c.top=f+"px"}i.tg=function(c){var g=0,f,d,k,e=0,h=0,l=window.navExtra;!n&&(n=document.getElementById("gbar"));!b&&(b=n.getElementsByTagName("span"));(c||window.event).cancelBubble=true;if(!a){a=document.createElement(Array.every||window.createPopup?"iframe":"div");a.frameBorder="0";a.id="gbi";a.scrolling="no";a.src="#";document.body.appendChild(a);if(l&&b[8])for(var q in l){var m=document.createElement("span");m.appendChild(l[q]);m.className="gb2";b[0].parentNode.insertBefore(m,b[8])}document.onclick=i.close}for(;b[e];e++){d=b[e];k=d.className;if(k=="gb3"){f=d.offsetLeft;while(d=d.offsetParent)f+=d.offsetLeft}else if(k=="gb2"){p(d.style,f+1,25+g);h=Math.max(h,d.offsetWidth);g+=20}}for(e=0;b[e];e++){if(b[e].className=="gb2"){b[e].style.width=h+"px"}}var j=a.style;j.height=g+"px";j.width=h+"px";p(j,f,24)};i.close=function(c){a&&a.style.visibility==o&&i.tg(c)};})();</script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="sf();if(document.images){new Image().src='/images/nav_logo3.png'}" topmargin=3 marginheight=3><div id=gbar><nobr><span class=gb1>Web</a></span> <span class=gb1>[url="http://images.google.de/imghp?hl=de&tab=wi"]Bilder[/url]</span> <span class=gb1>[url="http://maps.google.de/maps?hl=de&tab=wl"]Maps[/url]</span> <span class=gb1>[url="http://news.google.de/nwshp?hl=de&tab=wn"]News[/url]</span> <span class=gb1>[url="http://www.google.de/prdhp?hl=de&tab=wf"]Shopping[/url]</span> <span class=gb1>[url="http://mail.google.com/mail?hl=de&tab=wm"]Mail[/url]</span> <span class=gb3>[url="http://www.google.de/intl/de/options/"]<u>Mehr</u> <span style=font-size:11px>&#9660;</span>[/url]</span> <span class=gb2>[url="http://blogsearch.google.de/?hl=de&tab=wb"]Blogs[/url]</span> <span class=gb2>[url="http://books.google.de/bkshp?hl=de&tab=wp"]Bücher[/url]</span> <span class=gb2>[url="http://docs.google.com/?hl=de&tab=wo"]Dokumente[/url]</span> <span class=gb2>[url="http://picasaweb.google.de/home?hl=de&tab=wq"]Fotos[/url]</span> <span class=gb2>[url="http://groups.google.de/grphp?hl=de&tab=wg"]Groups[/url]</span> <span class=gb2>[url="http://www.google.com/calendar?hl=de&tab=wc"]Kalender[/url]</span> <span class=gb2>[url="http://www.google.de/reader?hl=de&tab=wy"]Reader[/url]</span> <span class=gb2>[url="http://video.google.de/?hl=de&tab=wv"]Video[/url]</span> <span class=gb2>[url="http://www.google.de/intl/de/options/"]und noch mehr &raquo;[/url]</span> </nobr></div><div id=gbh></div><div align=right id=guser style="font-size:84%;padding:0 0 4px" width=100%><nobr>[url="/url?sa=p&pref=ig&pval=3&q=http://www.google.de/ig%3Fhl%3Dde&usg=AFQjCNEuFEstOqdyi_oJiIgrhN9DEbl2cA"]iGoogle[/url] | [url="https://www.google.com/accounts/Login?continue=http://www.google.de/&hl=de"]Anmelden[/url]</nobr></div><center><br clear=all id=lgpd>[img]/intl/de_de/images/logo.gif[/img]

<form action="/search" name=f><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%></td><td align=center nowrap><input name=hl type=hidden value=de><input maxlength=2048 name=q size=55 title="Google-Suche" value="">
<input name=btnG type=submit value="Google-Suche"><input name=btnI type=submit value="Auf gut Glück!"></td><td nowrap width=25%><font size=-2><a href=/advanced_search?hl=de>Erweiterte Suche</a>
[url="/preferences?hl=de>Einstellungen</a>
<a"]Sprachtools[/url]</font></td></tr><tr><td align=center colspan=3><font size=-1><span style="text-align:left">Suche: <input id=all type=radio name=meta value="" checked><label for=all> Das Web </label><input id=lgr type=radio name=meta value="lr=lang_de"><label for=lgr> Seiten auf Deutsch </label><input id=cty type=radio name=meta value="cr=countryDE"><label for=cty> Seiten aus Deutschland </label></span></font></td></tr></table></form>

<font size=-1>[url="/intl/de/ads/"]Werbeprogramme[/url] - [url="/services/"]Unternehmensangebote[/url] - [url="/intl/de/about.html"]Über Google[/url] - <a href=http://www.google.com/ncr>Google.com in English</a></font>

<font size=-2>&copy;2008 Google</font></p></center></body></html>

mashutu 9. Jan 2008 15:14

Re: Link aus Quelltext raussuchen und auflisten
 
Delphi-Quellcode:
procedure getURLs(sName:string);
    procedure processLine(s:string;var t:system.text);
    const
        csStop ='"';
        csStart ='a href=';
        ciStartLen=7;
    var
        sTmp:  string;
        iCount,
        iPos:  integer;
    begin
        iCount:=0;
        repeat
            inc(iCount);
            iPos:=pos(csStart,s);
            if iPos>0 then
            begin
                s:=copy(s,iPos+ciStartLen+1,Length(s));
                iPos:=pos(csStop,s);
                if iPos>0 then
                begin
                    sTmp:=copy(s,1,iPos-1);
                    s:=copy(s,iPos+1,length(s));
                    if LowerCase(copy(sTmp,1,4))='http' then //<<<<<<<<!!!!!!!!!!
                        writeln(t,sTmp);
                end;

            end;
        until iPos=0;
    end;
var
    tout,
    t  :  system.text;
    s  :  string;

begin
    system.assign(t,sName);
    system.assign(tout,ChangeFileExt(sName,'URLs'));
    reset(t);
    rewrite(tout);
    while not eof(t) do
    begin
        readln(t,s);
        processLine(s,tout);
    end;
    system.close(t);
    system.close(tout);
end;
Das ist nur Quick and dirty. Insbesondere an der Markierung waeren noch andere Protokolle zu pruefen.
Auch der Name der Zieldatei ist einfach nur so...
Aber grundsaetzlich sollte klar werden was Sache ist.

s-off 9. Jan 2008 15:38

Re: Link aus Quelltext raussuchen und auflisten
 
In seinem Quelltext scheinen auch URLs zu sein, die nicht von Hochkommata eingeschlossen sind
Zitat:

<a href=http://www.google.com/ncr>
Und schon laufen wir wieder vor die Wand.
Ich sage ja, nach diesem kopierehier kopiereda-Schema wird das nichts. Jedenfalls nichts zuverlässiges.

mashutu 9. Jan 2008 16:08

Re: Link aus Quelltext raussuchen und auflisten
 
@s-off:
Ich hab' ja geschrieben, dasses quick and dirty ist und dass er das noch an seine Beduerfnisse anpassen muss.
Scheint ja auch nicht business-critical zu sein, was er sich da zusammenprogrammiert.
Denke aber, dass ich ihm eine Hilfestellung gegeben habe wie er grundsaetzlich vorgehen kann und einen brauchbaren Output bekommt. Klar gibt es noch diverse Syntaxvarianten. Der allgemeinen Nichtstandardisierung im Internet sei dank...

Larsi 9. Jan 2008 16:48

Re: Link aus Quelltext raussuchen und auflisten
 
wende doch nochmal pos mit'http:' oder so an :)

kannste mir vielleicht mal ne exe datei deines projektes schicken. würde das gern bei meiner homepage mal ausprobieren :)

s-off 9. Jan 2008 17:08

Re: Link aus Quelltext raussuchen und auflisten
 
@mashutu:
Mein Kommentar war nicht gegen Dich gerichtet. Er sollte dem Threadersteller lediglich als Antwort auf seine Frage dienen:
Zitat:

Zitat von knolli
@s-off: warum werde ich damit nich tweit kommen?

Darum kann ich auch absolut nicht nachvollziehen, warum er auf biegen und brechen versucht, auf Kopfsteinpflaster an sein Ziel zu kommen, wenn er auch auf Asphalt fahren kann.

@knolli
Zitat:

Zitat von knolli
und ich habe mir das beispiel angeschaut, aber ich finde es zu kompliziert. ich kann da einfach nix draus lesen (sorry aba da bin ich vllt zu blöd dafür)

Und wenn Du etwas nicht verstehst, gibst Du gleich auf? Mit dieser Einstellung wirst Du nicht nur in diesem Projekt scheitern, sondern auf ganzer Linie.
Die Zeit, die Du bisher in diesen Thread investiert hast, hättest Du dafür Aufwenden sollen, Dich in Bezug auf die Dir genannten Vorschläge weiterzubilden.

HERMES 10. Jan 2008 10:03

Re: Link aus Quelltext raussuchen und auflisten
 
Wie wäre es man statt mit pos oder ähnlichem einen richtigen Parser einsetzt? Ich denke man könnte hier auch den MS-XML Parser einsetzen, die benötigten Klassen und Interfaces liefert Delphi mit (mindestens ab D7). Oder man kann beispielweise mit Yacc für Delphi (http://delphiwiki.de/wiki/index.php?title=SRLexYacc) einen eigenen Parser generieren lassen, der ähnlilch schnell und wesentlich besser sein sollte als irgendwelche spielerreien mit pos.

mfg

knolli 16. Jan 2008 10:46

Re: Link aus Quelltext raussuchen und auflisten
 
so ich hab jetz eine eigene Lösung:
Delphi-Quellcode:
procedure TForm1.ExtractLinks(Sender: TObject);
var
i, iStop:integer;
sLink:String;
begin
sLink:='';
iStop:=Memo_Quellcode.Lines.Count-1;
Memo_Temp.Clear;
for i:=0 to iStop do
 begin
  IF MatchesMask(Memo_Quellcode.Lines[i], '*href="http://*"*') then
  begin
   Memo_Temp.Lines.Add(Copy(Memo_Quellcode.Lines[i],POS('href="',Memo_Quellcode.Lines[i])+6,Length(Memo_Quellcode.Lines[i])));
  end;
 end;
 for i:=0 to Memo_Temp.Lines.Count-1 do
  Memo_Links.Lines.Add(Copy(Memo_Temp.Lines[i],0,Pos('"',Memo_Temp.Lines[i])-1));
 end;
sie erscheint euch vllt nicht als die beste, aber für meine zwecke reicht sie.

vielen Dank an euch für die Hilfe!

[edit= man mus noch masks in die USES einbinden]


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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