Downloader|Uploader

Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

X0r

Betreff: Downloader|Uploader

BeitragDo, Jul 06, 2006 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo. Kann mir jemand eine Funktion oder sonstwas schreiben, mit dem ich Dateien downloaden und uploaden kann?

Danke im voraus.

Mr.Keks

BeitragDo, Jul 06, 2006 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
lies dir mal die stream-geschichten in der hilfe durch und vielleicht auch noch bei wiki die artikel zu http und ftp! viel spaß beim selberschreiben!
MrKeks.net
  • Zuletzt bearbeitet von Mr.Keks am Do, Jul 06, 2006 21:12, insgesamt 2-mal bearbeitet
 

Steve0

BeitragDo, Jul 06, 2006 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Lies dir den Code von Suco-X mal durch:
https://www.blitzforum.de/foru...rnet+laden

Da wird jedenfalls erklärt wie man Dateien runterlädt. Für den Upload weiß ichs net aber du kannst ja versuchen per FTP hochzuladen (Dürfte im Forum auch irgentwo stehen. Suche benutzen).

[Edit] Mist zu spät.
Pixelgenaue 2D SingleSurface Engine!!!

skey-z

BeitragFr, Jul 07, 2006 0:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieviel zahlst du, ich nehm für ne Stunde 20€ und ich habe sowas noch nie geschrieben, könnte also ein wenig länger dauern.

Aber mal im ernst, wozu will man programmieren lernen, wenn man sich die Funktionen von anderen schreiben lässt
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Hummelpups

BeitragFr, Jul 07, 2006 0:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Er brauch doch gar kein programmieren mehr lernen. Er kann es doch
schon lang.

Da ihm das nun keiner in 3h programmiert hat wird er sich gleich beklagen
und es sich von der englischen Community coden lassen. Wie immer.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

BladeRunner

Moderator

BeitragFr, Jul 07, 2006 6:32
Antworten mit Zitat
Benutzer-Profile anzeigen
*psst* kein Flame hier, ok?

Danke.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

X0r

BeitragSo, Jul 09, 2006 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah. Genau dieser "http:: " code hat mir gefehlt. Danke. Ich habe da mal ein Downloader gemacht:
Code: [AUSKLAPPEN]







file=ReadFile("http::ultimative.ul.ohost.de/gfx/13.gif")
file1=WriteFile("C:/TEST.JPG")

While Not Eof(file)

WriteInt file1,Readint(file)

Wend



CloseFile(file)
CloseFile(file1)






Ich wolte ja eins selber schreiben, aber ich wusste nicht, wie ich auf eine Datei im Netz zugreifen kann.
Jetzt weiß ichs ja.

Hummelpups

BeitragSo, Jul 09, 2006 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Das is ja ein Mega dynamischer Downloader, praktisch in einer Funktion
verpackt. Nice nice.

rdy4trsh?

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

D2006

Administrator

BeitragSo, Jul 09, 2006 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Man bemerke vorallem, wie er ein *.gif runterlädt und als *.jpg speichert!

Rolling Eyes
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Jan_

Ehemaliger Admin

BeitragMo, Jul 10, 2006 8:02
Antworten mit Zitat
Benutzer-Profile anzeigen
was passiert eigentlcih, wenn die Dateigröße nicht durch 4 Teilbar ist?
between angels and insects

BtbN

BeitragMo, Jul 10, 2006 10:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann bleibt das Programm meines wissens nach solange beim letzen Read befehl stehen, bis 4 bytes zur verfügung stehen, da sockets kein ReadTimeout haben.
 

E. Urbach

ehemals "Basicprogger"

BeitragMo, Jul 10, 2006 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Für diejenigen, die es gerne etwas dynamischer hätten und keine unnützen Bytes beim Downloaden einer Datei mit einer unpassenden Länge haben wollen:

Blitz Max Datei-Download

Beispiel:

Code: [AUSKLAPPEN]
DownloadFile("blitzforum.de/forum/index.php")


Code: [AUSKLAPPEN]
Function DownloadFile( URL$, SaveTo$="", D_port=80 )
   
   Local t:TSocketStream
   Local stream_length:Long = 0
   
   Local path$ = StripDir(URL$)
   
   If Instr(URL$, "/")
      URL$=Left(URL$, Instr(URL$, "/")-1)
   EndIf
   
   Rem
   Print URL$
   Print Path$
   WaitKey
   end rem
   
   t = ConnectToServer( URL$, "/"+path$, D_port)
   
   FlushStream(t)
   Local returns:String = ReadLine(t)
   While returns <> ""
      If Upper(Left(returns, 14))="CONTENT-LENGTH" Then
         stream_length = Long(Mid(returns, 17))
      EndIf
      returns = ReadLine(t)
   Wend
   
   Print ""
   
   If t=Null Then
      
      Print "Error"
      
   Else
      
      If SaveTo$="" Then
         SaveTo$ = StripDir(path$)
      EndIf
      If Instr(SaveTo$,"?") Then
         SaveTo$ = Left( SaveTo$, Instr(SaveTo$, "?")-1 )
      EndIf
      
      Local datei:TStream
      Local time% = MilliSecs()
      
      datei:TStream = WriteFile(SaveTo$)
      CopyStream t, datei, 4096
      CloseFile datei
      
      Print "Time: "+(MilliSecs() - time)
      CloseStream t
      
   EndIf
   
End Function

Function ConnectToServer:TSocketStream( host:String, path:String, port=80 )
   
   Local hsock:TSocket = CreateTCPSocket()
   ConnectSocket(hsock,HostIp(host),port)
   Local Stream:TSocketStream = CreateSocketStream(hsock,True)
   WriteLine(Stream,"GET " + path + " HTTP/1.0")
   WriteLine(Stream,"HOST: "+host)
   WriteLine(Stream,"")
   Return Stream
   
EndFunction


Benutzt zwar eine andere Methode, funktioniert aber trotzdem Wink
 

X0r

BeitragMo, Jul 10, 2006 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok. Mag zwar sein, dass es Fehler gibt, wenn man Dateien runterladet, die nicht durch vier teilbar sind, aber bei Media Dateien, Exe Dateien u.s.w müsste es immer klappen, da die sozusagen selber mit "writeint geschrieben sind" und somit ihre Größe immer durch vier teilbar ist, oder?
Also mit meinem Script gab es keine Probleme beim Download einer Image, Video oder Exe Datei.
 

E. Urbach

ehemals "Basicprogger"

BeitragMo, Jul 10, 2006 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Also mit meinem Script gab es keine Probleme beim Download einer Image, Video oder Exe Datei.

Schau sie dir mit nem Hexeditor an und erzähl mir das nochmal.

P.S. Du wirst deshalb keinen Fehler bemerken, weil die Dateiformate so ausgelegt sind, dass sie die letzten Bytes gar nicht beachten. Dadurch erscheint auch keine Fehlermeldung, wenn du z.B. eine PNG-Datei herunterlädst.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

FOODy

BeitragMo, Jul 10, 2006 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
DW hat Folgendes geschrieben:
Ok. Mag zwar sein, dass es Fehler gibt, wenn man Dateien runterladet, die nicht durch vier teilbar sind, aber bei Media Dateien, Exe Dateien u.s.w müsste es immer klappen, da die sozusagen selber mit "writeint geschrieben sind" und somit ihre Größe immer durch vier teilbar ist, oder?
Also mit meinem Script gab es keine Probleme beim Download einer Image, Video oder Exe Datei.

Also ich dachte bis jetzt immer das man wenn man eine Binäre datei schreiben/lesen will, es immer Byte-Mäßig machen soll....
 

X0r

BeitragMo, Jul 10, 2006 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, hab ich auch gerade bemerkt.


Aber wenn ich z.B eine Datei mit Wizard Package Maker packe, dann wird auch mit readint und mit readwrite die Datei kopiert. Beim Entpacken das selbe. Warum ist sie dann nicht beschädigt?
  • Zuletzt bearbeitet von X0r am Mo, Jul 10, 2006 16:44, insgesamt einmal bearbeitet
 

Dreamora

BeitragMo, Jul 10, 2006 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Was sie dir sagen wollten: Nicht jedes Dateiformat basiert auf Int / 4 Byte blöcken. Und dort wirste dann probs bekommen

also nimm doch einfach read/write byte ... so schwer kann das doch eigentlich net sein oder?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

X0r

BeitragMo, Jul 10, 2006 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok. Auf jeden Fall kamen bei meinem Script keine Probleme(Bei images, exes,videos).


Und warum ist Blitzproggers code dynamischer? Wie meint ihr das?
Bei meinem script passiert doch eigentlich das gleiche, er kopiert einfach den code der Datei.
 

E. Urbach

ehemals "Basicprogger"

BeitragMo, Jul 10, 2006 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Ok. Auf jeden Fall kamen bei meinem Script keine Probleme(Bei images, exes,videos).

Weil die letzten Bytes von deinen Bildbearbeitungsprogrammen nicht beachtet wurden.
Zitat:
Und warum ist Blitzproggers code dynamischer? Wie meint ihr das?
Bei meinem script passiert doch eigentlich das gleiche, er kopiert einfach den code der Datei.

Dynmaischer nannte ich ihn nur, weil er in eine Funktion gepackt war und einfach nur einen Parameter erwartete (URL). Man konnte zusätzlich noch als 2ten Parameter den Pfad zu der zu speichernden Datei angeben. Es lässt sich also einfach der Code einbinden (bzw. Modul kompilieren) und diese Funktion nutzen.

P.S. Dein Code in eine Funktion gepackt:
Code: [AUSKLAPPEN]
Function DownloadFile(url$, out$)
 file=ReadFile("http::"+url$)
 file1=WriteFile(out$)
 
 While Not Eof(file)
 
 WriteByte file1,ReadByte(file)
 
 Wend
 
 CloseFile(file)
 CloseFile(file1)
End Function


Braucht zwar länger, bis er die Datei heruntergeladen hat (1-Byte-Buffer), wäre aber natürlich auch möglich, wenns nicht auf Speed ankommt.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
 

X0r

BeitragMo, Jul 10, 2006 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das mit Funktion ist natürlich klar, logisch. Ich habe das vorher einfach nur hingerappelt, da es eh keiner nutzt. Aber die restlichen Bytes werden eigentlich bei einer Datei nie beachtet. Bei Exe ist das auch so.

Natürlich könnte ich copystream nehmen, aber dann könnte ich das nicht so gut mit der Progbar hinbekommen.


Und was sollte dieses geflame? Ich hab nett gefragt und bekomme miese Antworten, so als wäre ich ein absoluter noob. Ich wusste nunmal nicht, dass man "::" statt "://" nehmen muss bzw. dass das Programm es nicht erkennen kann.


Thema beendet.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group