readfile
-
- Beiträge: 10
- Registriert: 15.01.2007 16:32
readfile
ja hallo
hab so nenen prob
will nen update checker machen
der soll eine datei im internet lesen und schauen ob ein neues update erforderlich ist
nur leider bin ich ein anfänger und redfile funktuiniert irgendwie bei dateien im inet nicht
kan mir jemand weiter helfen
hab so nenen prob
will nen update checker machen
der soll eine datei im internet lesen und schauen ob ein neues update erforderlich ist
nur leider bin ich ein anfänger und redfile funktuiniert irgendwie bei dateien im inet nicht
kan mir jemand weiter helfen
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
So kann man eine Datei herunterladen. Du musst aber noch manuell zwischen dem Header und der eigentlichen Datei unterscheiden, was kein Problem sein sollte:
Code: Alles auswählen
InitNetwork()
ID = OpenNetworkConnection("www.noname-development.de", 80)
Header.s + "GET /index.html HTTP/1.1" + #CRLF$
Header.s + "Host: noname-development.de" + #CRLF$
Header.s + "Accept: */*" + #CRLF$
Header.s + "Connection: Close" + #CRLF$ + #CRLF$
SendNetworkString(ID, Header.s)
*Buffer = AllocateMemory(20000)
Repeat
Until NetworkClientEvent(ID) = 2
ReceiveNetworkData(ID, *Buffer, MemorySize(*Buffer))
CreateFile(1, "test")
WriteData(1, *Buffer, MemorySize(*Buffer))
CloseNetworkConnection(ID)
-
- Beiträge: 10
- Registriert: 15.01.2007 16:32
Ist das nicht ein wenig kompliziert (gerade für einen Anfänger) um eine Datei herunterzuladen? Sofern das Programm unter Windows erstellt wird (API) geht es einfacher, nämlich so:vonTurnundTaxis hat geschrieben:So kann man eine Datei herunterladen. Du musst aber noch manuell zwischen dem Header und der eigentlichen Datei unterscheiden, was kein Problem sein sollte:Code: Alles auswählen
InitNetwork() ID = OpenNetworkConnection("www.noname-development.de", 80) Header.s + "GET /index.html HTTP/1.1" + #CRLF$ Header.s + "Host: noname-development.de" + #CRLF$ Header.s + "Accept: */*" + #CRLF$ Header.s + "Connection: Close" + #CRLF$ + #CRLF$ SendNetworkString(ID, Header.s) *Buffer = AllocateMemory(20000) Repeat Until NetworkClientEvent(ID) = 2 ReceiveNetworkData(ID, *Buffer, MemorySize(*Buffer)) CreateFile(1, "test") WriteData(1, *Buffer, MemorySize(*Buffer)) CloseNetworkConnection(ID)
Code: Alles auswählen
DeleteUrlCacheEntry_("http://www.dudeldudel.de/update.txt")
URLDownloadToFile_(0, "http://www.dudeldudel.de/update.txt", "c:\update.txt", 0, 0)
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
> Ist das nicht ein wenig kompliziert (gerade für einen Anfänger)
Nein, denn so lernt er, HTTP-Server anzusprechen...
Und Programmieren ohne Verstehen ist doch nicht was wir hier fördern möchten, oder? Dafür gibts den GameMaker.
> ein header ist und so
Ein Header ist ein Dateikopf (so etwas ähnliches wie ein Briefkopf). Dieser Header hängt an den heruntergeladenen Dateien dran (probiers einfach mal aus
)
> und was ist #CRLF$
Das ist eine Zeilenumbruchs-Konstante...
Nein, denn so lernt er, HTTP-Server anzusprechen...
Und Programmieren ohne Verstehen ist doch nicht was wir hier fördern möchten, oder? Dafür gibts den GameMaker.
> ein header ist und so
Ein Header ist ein Dateikopf (so etwas ähnliches wie ein Briefkopf). Dieser Header hängt an den heruntergeladenen Dateien dran (probiers einfach mal aus

> und was ist #CRLF$
Das ist eine Zeilenumbruchs-Konstante...
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
> Bei so hohen Ansprüchen wäre dann aber auch eine bessere Dokumentation des Codes nötig.
Tot uw dienst
Tot uw dienst

Code: Alles auswählen
InitNetwork(); Initialisiert die Netzwerk-Befehle; ist nötig, um Netzwerk-Befehle zu verwenden
ID = OpenNetworkConnection("www.noname-development.de", 80); Öffnet eine Verbindung zum Server www.noname-development.de. hier könnte auch eine IP stehen.
Header.s + "GET /index.html HTTP/1.1" + #CRLF$ ;Hier wird der GET-Header zusammengestellt, der an den Server gesendet wird. Siehe auch hier: http://de.wikipedia.org/wiki/HTTP#HTTP_GET
Header.s + "Host: noname-development.de" + #CRLF$
Header.s + "Accept: */*" + #CRLF$
Header.s + "Connection: Close" + #CRLF$ + #CRLF$
SendNetworkString(ID, Header.s)
*Buffer = AllocateMemory(20000); Hier werden 20000 Bytes im Arbeitsspeicher reserviert, um die Datei darin aufzunehmen.
Repeat
Until NetworkClientEvent(ID) = 2
ReceiveNetworkData(ID, *Buffer, MemorySize(*Buffer)); Hier wird die Antwort des Servers in den reservierten Bereich im RAM gespeichert...
CreateFile(1, "test")
WriteData(1, *Buffer, MemorySize(*Buffer)) ;...und hier in eine Datei geschrieben
CloseNetworkConnection(ID)