Seite 1 von 1

Fehler bei String parsen

Verfasst: 26.02.2010 22:26
von X360 Andy
Guten Abend

Ich habe gerade ein seltsames phänomen was ich zum ersten mal beobachte.
ReceiveHTTPFile zeigt mir einen sehr langen String als "[...]" an, sollang das nur in der Debuger ausgabe so ist, ist mir es recht.
Doch auch bei der verarbeitung wird scheinbar "[...] benützt.


Ich möchte eine Webseite komplett abscannen und auf veränderungen prüfen.

Hier mein [Anfangs]Code

Code: Alles auswählen

InitNetwork()

Global atm
Global Dim mainlink.s(7)
mainlink(0) = "http://www.austria-tourist.net/_dt/Oesterreich/Burgenland_orte.htm"
mainlink(1) = "http://www.austria-tourist.net/_dt/Oesterreich/Niederoesterreich_orte.htm"
mainlink(2) = "http://www.austria-tourist.net/_dt/Oesterreich/Oberoesterreich_orte.htm"
mainlink(3) = "http://www.austria-tourist.net/_dt/Oesterreich/Salzburger_Land_orte.htm"
mainlink(4) = "http://www.austria-tourist.net/_dt/Oesterreich/Steiermark_orte.htm"
mainlink(5) = "http://www.austria-tourist.net/_dt/Oesterreich/Tirol_orte.htm"
mainlink(6) = "http://www.austria-tourist.net/_dt/Oesterreich/Vorarlberg_orte.htm"
mainlink(7) = "http://www.austria-tourist.net/_dt/Oesterreich/Wien_orte.htm"

Procedure GetSubLink()
  link$ = mainlink(atm)
  If ReceiveHTTPFile(link$, GetTemporaryDirectory() + "site.html")
    If ReadFile(0, GetTemporaryDirectory() + "site.html")
      While Eof(0) = 0
        mainsubsitestring$ = ReadString(0)
        count = CountString(mainsubsitestring$, "<a href=")
        For k = 0 To count
          midstring$ = StringField(mainsubsitestring$, k, "<a href=")
          midstring$ = Mid(midstring$, 8)
          midstring$ = Left(midstring$, FindString(midstring$, ">", 0)-1)
          If Not midstring$ = "" And Left(midstring$,7) = "http://"
          Debug midstring$ 
          EndIf
        Next
      Wend
      CloseFile(0)
    EndIf
  EndIf
EndProcedure
 
GetSubLink()
Die Ausgabe hört bei dem Buchstaben "G" in etwa auf.

In der Webseite wird der Inhalt den ich haben möchte in einen sehr sehr langen String dargestellt ( natürlich im browser mit Zeilenumbruch ) der Debugger von PB gibt mir diesen String Anfangs richtig zurück ab einem bestimmten Punk dann aber nur noch als [...], das der Debugger so macht ist mir egal doch Pb scheint das intern wohl auch so zu machen ... ?

Kann jemand helfen ?

Re: ReceiveHTTPFile ladet nur einen Teil herunter

Verfasst: 26.02.2010 23:02
von Kiffi
X360 Andy hat geschrieben:doch Pb scheint das intern wohl auch so zu machen ... ?
nein, PB macht das nicht so. Sowas wäre ja auch ziemlich übel.

Also bei mir werden ne Menge Links durch Deine Routine ausgegeben.
Scheint alles OK zu sein (ohne jetzt die entsprechende Seite auf
die tatsächlich vorhandenen Links überprüft zu haben).

Grüße ... Kiffi

Re: ReceiveHTTPFile ladet nur einen Teil herunter

Verfasst: 26.02.2010 23:06
von X360 Andy
Die Ausgabe bei dem Code ist bei mir

Code: Alles auswählen

http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Andau.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Antau.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Apetlon.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Bad_Sauerbrunn.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Bad_Tatzmannsdorf.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Badersdorf.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Baumgarten.htm
....
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Grafenschachen.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Grosshoeflein.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Grossmuerbisch.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Grosspetersdorf.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Grosswarasdorf.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Guessing.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Guettenbach.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Hackerberg.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Halbturn.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Hannersdorf.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Heiligenbrunn.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Heiligenkreuz_im_Lafnitztal.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Heugraben.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Hirm.htm
http://www.austria-tourist.net/_dt/Oesterreich/Burgenland/Horitschon.htm
Das ganze sollte bis Z gehen ....

Re: ReceiveHTTPFile ladet nur einen Teil herunter

Verfasst: 26.02.2010 23:08
von Bisonte
Also kürzen von Strings passiert nicht.

Im Texteditor (Notepad++) hat die Zeile die Du auslesen willst 19499 Zeichen.
Wenn Du mit Len() den längsten String prüfst hat er die gleiche Anzahl an Zeichen.

Re: ReceiveHTTPFile ladet nur einen Teil herunter

Verfasst: 27.02.2010 13:04
von X360 Andy
Stimmt an diese Prüfung des Strings habe ich nicht wirklich gedacht.
Danke somit kann man natürlich ein Problem mit ReceiveHTTPFile ausschließen.

Gruß

Re: ReceiveHTTPFile ladet nur einen Teil herunter

Verfasst: 27.02.2010 13:14
von Kiffi
X360 Andy hat geschrieben:Danke somit kann man natürlich ein Problem mit ReceiveHTTPFile ausschließen.
wäre auch schneller gegangen, wenn Du Dir die Datei, die
Du unter GetTemporaryDirectory() + "site.html" abspeicherst,
mal angeschaut hättest ;-)

Grüße ... Kiffi

ladet

Verfasst: 27.02.2010 13:48
von Kaeru Gaman
<offtopic>
  • lädt
</offtopic>

Re: ReceiveHTTPFile ladet nur einen Teil herunter

Verfasst: 27.02.2010 13:51
von X360 Andy
@Kiffi
Könnte die Datei ja auch im temp verzeichnis anschauen ... hast aber recht.

@KG
Ändere den Titel au gleich mal in was passenders.