hjsplit
Nimm erstmal eine Text-Datei.
Ich würd dir ja meinen Code geben, aber der ist schmutzig
Du machst folgendes:
Zur Probe:
TextDatei schreiben und jede Zeile einzeln übertragen.
Sagen wir zehn Zeilen.
Und jede Datei bekommt eine Prüfsumme.
Nun schickst du die Dateien einzeln rüber und kannst für jede wieder schauen, ob die Prüfsumme gleich ist. Die musste natürlich auch übertragen.
Und wenn ja, dann lädst du wieder alle Zeilen aus den einzelnen Dateien und machst daraus eine.
... bei Exe und DATEN-Daten ist es etwas schwieriger.
Einige Dateien haben auch das EOF-Zeichen in sich selbst, bevor sie zu Ende sind. Ich würde immer so lange auslesen, bis eine Zählvariable gleich der Länge in Byte ist. (wenn du jedes Byte einzeln liest)
Verstanden oder Fragen?
---------------------------------------------
Pfad musste dir selbst einstellen.
Code: Alles auswählen
S.s="c:\F\PureBasic\2007\text.txt"
P.s=GetPathPart(S)+"_#SPLIT\"
Size= FileSize(S)
; Alle 30 Byte Splitten
CreateDirectory(P)
If OpenFile(0,S)
For x=1 To Size/30
Debug x
CreateFile(1,P+RSet(Str(x),8,"0")+".txt")
For i=1 To 30
WriteByte(1,ReadByte(0)) ; nicht die günstigste Methode
Next
CloseFile(1)
Next
CloseFile(0)
EndIf
Nun haste schon mal deine Dateien. Wie du die Prüfsummen der Dateien bestimmst ist dir überlassen.
Kannst zum Beispiel alle Byte-Werte addieren und das Ergebnis als letztes Byte der Datei anfügen.
Beim Überprüfen schauste dann, ob alle bis auf das letzte Byte addiert den Wert des letzten ergeben. (eine ganz ganz einfache Methode nur zum Verständnis)
Wenn es der Fall ist, fügst du alle bis auf das letzte Byte zusammen.
Sollte das Ergebnis nicht stimmen, musst du wieder einen Request starten und nach genau dieser Datei (dem Paket) fragen.
Achso:
Textdatei, wenn du dich fragst, wieso nur 30 Byte
Zeile 1
Dings 2
Hosen runter 3
Gleich kommt die 4. Zeile
Mal schauen
Testdatei
Nichts besonderes
Nur so, etwas Text
Wo sind wir nun?
Keine Ahnung
Gut, Ende Banane
