Seite 1 von 2
URLDownloadToFile funktioniert bei mir nicht
Verfasst: 04.10.2007 11:52
von PureNoob
Hi Leute,
ich stehe mal wieder total auf dem Schlauch, weil ich folgendes Problem habe: Ich möchte gerne den Rang meines Games auf einer sogenannten Ranking-seite auslesen. Dieses Ranking soll dann in meinem Programm neben dem jeweiligen Image für die Ranking-Seite stehen.
Ich habe den Code hier von Scarabol ausprobiert, bekomme aber immer einen Error. Woran liegt das?
Code: Alles auswählen
If URLDownloadToFile_(0,"www.purebasic.fr/german/","C:\test.html",0,0) = #S_OK
OpenFile(1, "c:\test.html")
While Eof(1) = 0
Code$+ReadString(1)+Chr(10)
Wend
Code$ = Right(Code$, Len(Code$)-FindString(Code$, "<body", 0)+1)
Code$ = Left(Code$, FindString(Code$, "</body", 0))
CreateFile(2, "test.txt")
WriteString(2, Code$)
CloseFile(2)
End
MessageRequester("Info", Code$)
End
Else
MessageRequester("Error","Couldn't download file...",0)
EndIf
Scarabol oder Kiffi, wisst Ihr wie ich da eine Lösung für mein Problem finde? Man beachte, es ist eine Ranking Seite und das Ranking kann sich jederzeit durch die In´s und Out´s verändern.
Gruss PureNoob
Verfasst: 04.10.2007 12:25
von Scarabol
Hi,
also erstma es liegt nicht an meinem Code.
Das Problem ist die fehlende Antwort des Server oder die Unfähigkeit einiger API Programierer...
Muss aber zugeben das das Beispiel ein wenig vermurkst ist, also im folgenden hat es bei mir funktioniert:
Code: Alles auswählen
If URLDownloadToFile_(0,"http://www.arndt-bruenner.de/mathe/scripts/kubspline.htm","C:\test.html",0,0) = #S_OK
MessageRequester("Info", "Download successfull.", #MB_ICONINFORMATION)
Else
MessageRequester("Error","Couldn't download file...",16)
EndIf
Scheint wohl an der fehlenden Dateiangabe in der Zieladresse gelegen zu haben...
Gruß
Scarabol
Verfasst: 04.10.2007 12:41
von Kiffi
@PureNoob:
das fehlt das http://
... und ersetze bitte das OpenFile() durch ReadFile()
... und teste bitte immer, ob ReadFile() oder CreateFile() auch geklappt hat
Grüße ... Kiffi
Verfasst: 04.10.2007 14:29
von Scarabol
@Kiffi
War nicht sein Fehler...ist wie gesagt mein Code
@PureNoob
Trotzdem hat er recht...
Gruß
Scarabol
Verfasst: 04.10.2007 14:33
von Kiffi
Scarabol hat geschrieben:@Kiffi
War nicht sein Fehler...ist wie gesagt mein Code

dann mal schnell ausbessern, bevor der nächste (Pure)Noob darauf reinfällt
Please press Edit-Button:
http://www.purebasic.fr/german/viewtopi ... ile#170827
Grüße ... Kiffi
Verfasst: 04.10.2007 18:23
von Scarabol
Achtung Bilderrätsel!

und
Gruß
Scarabol
Verfasst: 04.10.2007 20:30
von Kiffi
Scarabol hat geschrieben: 
und

und
Grüße ... Kiffi
Alles in einer Datei oder geht das nicht?
Verfasst: 05.10.2007 13:29
von PureNoob
Hallo,
nachdem ich mich dann etwas mehr mit dem Quelltext beschäftigt habe, habe ich es dann auch hinbekommen. Wenn ich diesen Code hier starte:
Code: Alles auswählen
If URLDownloadToFile_(0,"http://www.gamesites200.com/wowprivate/details-2137.html","C:\test.html",0,0) = #S_OK
ReadFile(1, "c:\test.html")
While Eof(1) = 0
Code$+ReadString(1)+Chr(10)
Wend
Code$ = Right(Code$, Len(Code$)-FindString(Code$, "Current Rank:</b></td><td>", 0)+1)
Code$ = Left(Code$, FindString(Code$, "Site URL:", 0))
CreateFile(2, "C:\test.txt")
WriteString(2, Code$)
CloseFile(2)
End
MessageRequester("Info", "Download successfull.", #MB_ICONINFORMATION)
Else
MessageRequester("Error","Couldn't download file...",16)
EndIf
Dann schreibt er mir wie angegeben 2 Dateien. Einmal die Test.html und die test.txt. Jetzt will ich aber 6 verschiedene Seite abfragen und die ergebnisse sollen denn z.B. so in der test.txt stehen, damit ich sie auslesen kann:
Code: Alles auswählen
Current Rank:</b></td><td>18</td></tr><tr class="b"><td><b>S
Current Rank:</b></td><td>36</td></tr><tr class="b"><td><b>S
Current Rank:</b></td><td>5</td></tr><tr class="b"><td><b>S
Current Rank:</b></td><td>44</td></tr><tr class="b"><td><b>S
Current Rank:</b></td><td>112</td></tr><tr class="b"><td><b>S
Current Rank:</b></td><td>38</td></tr><tr class="b"><td><b>S
Nur leider schreibt mir das Programm nur Müll in die txt Datei wenn ich im Programm mehrere ReadFile Strings hintereinander setze. Die beiden MessageRequester habe ich drin gelassen und nur mit einem END davor beendet, weil mir sonst jedesmal der AntiVir anspringt, wenn ich die wegmache. Ich will auch nicht für jede Webseite die ich auslese eine extra Datei erstellen. Oder muss ich das?
Könnt ihr mir da bitte nochmal helfen?
Gruss PureNoob
Verfasst: 05.10.2007 15:49
von Scarabol
Verwend doch mal bitte den Code den ich oben editiert hab...
Gruß
Scarabol
Code verwenden
Verfasst: 05.10.2007 17:35
von PureNoob
Das ist ja ok, ich kann den Code ja verwenden, er schreibt mir dann alles was die Datei die heruntergeladen wurde enthält, untereinander in eine Datei.
Wie sieht das denn mit mehreren Dateien aus? Z.B. Ich rufe auf server 1 die x.html auf und lasse die in die datei auslesen, dann rufe ich auf server 2 die y.hmtl auf und lasse die ebenfalls in die "gleiche" datei unten dran auslesen, so dass ich nur noch eine datei später mit meinem Programm auszulesen brauche um an die Rankings zu kommen.
War das jetzt kompliziert formuliert?
Gruss PureNoob