Dateigröße bei FTP nicht erkannt

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Dateigröße bei FTP nicht erkannt

Beitrag von Joel »

Wenn ich eine Datei Splitte (siehe unten) und dann die 200KB Packete per FTP-Lib hochlade, dann sind die Daten war oben, haben aber als Dategröße: 0

Wie lade ich die ganze Datei hoch? Muss ich nach dem Splitten die Dateigröße neu indexieren oder so?

Code: Alles auswählen

Procedure Splitten()
S$ = "C:\Dokumente und Einstellungen\Joel\Desktop\1test.mpg"
P.s="C:\Split\" 
Size= FileSize(S$) 
Size1 = FileSize(S$)
Byt = 1000000

CreateDirectory(P) 
If OpenFile(0,S$)
For x=1 To Size/Byt+1
  CreateFile(1,P+Str(x)+".JPG") 
  For i=1 To Byt
  Size1-1
    If Size1 = 0
    WriteByte(1,ReadByte(0)) 
 CloseFile(1)
 CloseFile(0)
 Goto Weiter_1:
  EndIf 
     WriteByte(1,ReadByte(0)) 
  Next 
  CloseFile(1) 
Next 
CloseFile(0) 
EndIf
Weiter_1:
EndProcedure 
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Mal von der schlechten lesbarkeit des Quellcodes abgesehen ... und den
Sprungmarken /:-> ... warum schreibst du die Datei Byte für Byte? Kommt
mir irgend wie so vor als wenn dir jemand die Schlüssel für nen großen
Bagger in die Hand drückt und du dann anfängst mit nem Löffel den
Sandberg zu schüppen. :lol:

Wo da ein Problem mit FTP sein soll weis ich nicht, in deinem Quellcode
kommt kein FTP-Befehl vor :wink:

Ach ja, schon mal was von "Break" gehört? :D

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Das Problem habe ich auch schon gelöst!

Der Code ist aus einem anderen Thread kopiert, also wenig dran geändert außer eine Sprunkmarke :D

Was soll ich denn noch ändern?

Wenn ich 200 KB auf einmal einlese, aber nur 180 vorhanden sind, ist das ja auch doof. Desswegen mache ich das Byte für Byte, damit kein Byte verloren geht.

Aber vielleicht hast du ja eine schnellere Methode!
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Ich? Du willst doch was lernen ... schau dir mal die Hilfe zu ReadData()
an ... da fällt dir bestimmt was auf :wink: ... ansonnsten gibs aber noch
Lof() mit dem man min. genau so gut arbeiten kann.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Ligatur
Beiträge: 196
Registriert: 09.07.2006 00:41

Beitrag von Ligatur »

Joel hat geschrieben: Der Code ist aus einem anderen Thread kopiert, also wenig dran geändert außer eine Sprunkmarke :D
genau damit machst du ja schon wieder den gleichen Fehler wie bei "read error at adress 17 bei sämtlichen Untils". Wenn du schon das umstrittene Goto verwendest dann benutze es nicht um aus irgendwie gearteten Schleifen (Diesmal For - Next) herauszuspringen, sonst musst du bald einen neuen Thread mit ähnlichen Titel wie diesen aufmachen.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

War ein altes Projekt, dewegen war da Goto !

Ich habe das Projekt verbessert! Ist jetzt 30-mal schneller :D
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Antworten