![]() |
Posex und kein Plan :-(
hallo,
ich habe einen html-code, wo ich eine bestimmte zeile heraus ziehen möchte. habe das forum schon durchsucht und bin auf posex gestossen. doch leider bekomme ich es nicht hin, den code zu parsen. wäre echt nett, wenn mir der ein oder andere etwas helfen könnte. also ein auschnitt aus dem html-code sieht so aus:
Code:
also alles was einmalig ist, ist <input type=checkbox name=".docs" value="
<input type=checkbox name=".docs" value="klausi pac.text">
[img]http://myurl.de/i/dd/for.gif[/img] </td> <td align=left valign=middle> <font face="Arial,Helvetica" size=-1> <a href="http://myurl.de/dd/33fd3dff/dd/klausi+pac.text?DUcKdUCBBkzOTnEq"> klausi pac.text ist das einzige was mir bekannt ist. dieser html-code wiederholt sich 3-4mal, wobei der aufbau immer gleich ist, nur steht das nächste mal nicht klausi pac.text sonder z.b. petra pac.text. ich brauch nun aber die url, die etwas tiefer steht, damit ich diese downloaden kann. wie in diesem fall von klausi pac.text. http://myurl.de/dd/33fd3dff/dd/klausi+pac.text?DUcKdUCBBkzOTnEq wenn ich diese dann downgeloadet habe, würde ich den gleichen schritt halt nochmal durchlaufen lassen, um evtl. petra pac.text zu schnappen. kann mir da mal einer anhand eines beispieles erklären, wie ich diesen bewerkstellige? gruss jolomino |
Re: Posex und kein Plan :-(
Moin,
ich versteh dein Problem nicht ganz, du kannst doch einfach bis: Zitat:
Das machst du in einer Schleife. |
Re: Posex und kein Plan :-(
Zitat:
naja, trotzdem danke, werde mal mit deinem tipp versuchen was auf die beine zu stellen :-) oder ich finde doch noch was im forum. gruss jolomino |
Re: Posex und kein Plan :-(
Gib mir die komplette html datei bzw den text daraus, dann schreib ichs dir, aber wenn das nur so ein teil ist kann ich das leider nicht :\
|
Re: Posex und kein Plan :-(
naja, das könnte ich, aber ich möchte es ja alleine schaffen. kleine hilfen sind ok, aber wenn du mir das alles fertig machen willst, dann hab ich daraus nichts gelernt.
ist es denn nicht möglich, nach dem namen klausi+pac.text? zu suchen und alles bis zu den beiden " zu selektieren? ich hab mir das nämlich eben nochmal angeschaut, klausi+pac.text? kommt in der seite auch nur einmal vor.oder das man nach <input type=checkbox name=".docs" value="klausi pac.text"> sucht und beim nächsten <a href="http://myurl.de/dd/33fd3dff/dd/klausi+pac.text?DUcKdUCBBkzOTnEq"> der link selektiert wird. gruss jolomino |
Re: Posex und kein Plan :-(
Dann kann ich dir nur sagen: Benutz Delete(), Copy() und Pos()
|
Re: Posex und kein Plan :-(
moin,
eine andere (kompliziertere, wegen Einarbeitung aufwendigere) Möglichkeit wäre mit [dp]Regulären Ausdrücken[/dp] zu arbeiten. Damit dann erstmal alle Links aus der Seite zu filtern und schließlich zu schauen welcher "klausi" enthält. |
Re: Posex und kein Plan :-(
so, habs hinbekommen, aber nur wenn ich die html datei auf dem rechner habe.
Delphi-Quellcode:
Aufruf mit:
procedure TForm1.GetDlLink(FileName: string);
var DlSearch: string; startpos, endpos, endpos2 : integer; quelle: TextFile; begin AssignFile(quelle, FileName); Reset(quelle); if IOResult = 0 Then begin while not EOF(quelle) do begin ReadLn(quelle, DlSearch); //Startposition für suche festlegen startpos := Posex(DlFile, DlSearch); if startpos > 0 Then begin //Endposition des Links festlegen endpos := Pos('">', DlSearch); endpos2 := Pos('"', DlSearch); //Downloadlink zurechtschneiden DlLink := Copy(DlSearch, endpos2+1, endpos-23); end; end; end; CloseFile(quelle); end;
Delphi-Quellcode:
2. versuch war mit temphtm := idhttp1.Get(Url) die seite in einem string zu laden. funzt auch bestens.
procedure TForm1.Button1Click(Sender: TObject);
begin //DownloadFile wechles gesucht werden soll DlFile := 'test.zip'; GetDlLink(ExtractFilePath(Application.Exename)+'datei.htm'); end; übergabe sah dann so aus:
Delphi-Quellcode:
nur leider hab ich es noch nicht hinbekommen, den übergebenen string in der Procedure GetDlLink zu verarbeiten, da ja ein file erwartet wird und ein string geliefert wird.
procedure TForm1.Button1Click(Sender: TObject);
begin //DownloadFile wechles gesucht werden soll DlFile := 'test.zip'; GetDlLink(temphtm); end; kann mir einer nen tipp geben, wie ich die procedure abändern muss? gruss jolomino |
Re: Posex und kein Plan :-(
lade die Seite in eine tStringlist
Delphi-Quellcode:
und ersetze deine while Schleife durch
myStrynglist.Text := temphtm
Delphi-Quellcode:
dann kannst du mit myStringlist[i] auf die einzelnen Zeilen zugreifen.
For i:=0 to myStringlist.Count-1 do
(Vergiss aber nicht die Stringlist vorher zu erzeugen und anschließend wieder freizugeben) Im Endefekt solltest du dann sowas haben:
Delphi-Quellcode:
var
myStringlist: tStringlist; i: integer; begin myStringlist := tstringlist.Create; myStrynglist.Text := temphtm; For i:=0 to myStringlist.Count-1 do begin // end; myStringlist.Free; end; |
Re: Posex und kein Plan :-(
hi, erstmal danke für die antwort, hab aber noch ein problem.
Delphi-Quellcode:
irgentwie funzt die startpos nicht richtig, es kommt zumindesten als ergebnis ein komischer string raus, welcher sich aus den ersten beiden zeilen zusammen setzt.
var
myStringlist: tStringlist; i: integer; begin myStringlist := tstringlist.Create; myStrynglist.Text := temphtm; DlSearch := myStringlist.text; For i:=0 to myStringlist.Count-1 do begin //Startposition für suche festlegen startpos := Posex(DlFile, DlSearch); if startpos > 0 Then begin //Endposition des Links festlegen endpos := Pos('">', DlSearch); endpos2 := Pos('"', DlSearch); //Downloadlink zurechtschneiden DlLink := Copy(DlSearch, endpos2+1, endpos-23); end; end; myStringlist.Free; end; gruss jolomino |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 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