Hilfe, mein Denkfehler verstrickt sich immer mehr :-)
Verfasst: 14.12.2005 23:23
So, kurz und knapp erklärt: Eine Datei wird eingelesen und häppchenweise wieder in eine andere geschrieben (mag sinnig erscheinen, aber ist ja nur ein Ausschnitt).
Auftretendes Problem: Datenverlust, sprich die neue Datei "orte.txt" ist nicht identisch mit der originalen Datei die man öffnet.
Einfach mal irgendeine Textdatei mit viel Text nehmen und dann mit der erstellten "orte.txt" vergleichen (am Ende der Datei sieht man das was fehlt).
Zum Code: Ist eine Schleife die Pakete á 1024 Bytes schreibt, was übrig bleibt wird am Schluss noch angehangen, sollte die geöffnete Datei unter 1024 Bytes groß sein, wird die Schleife nicht abgearbeitet und nur die paar Bytes reingeschrieben.
Wo liegt mein Fehler? Kann nur was Einfaches sein, aber je mehr ich daran rumändere, desto gravierender werden die Fehler
Auftretendes Problem: Datenverlust, sprich die neue Datei "orte.txt" ist nicht identisch mit der originalen Datei die man öffnet.
Einfach mal irgendeine Textdatei mit viel Text nehmen und dann mit der erstellten "orte.txt" vergleichen (am Ende der Datei sieht man das was fehlt).
Code: Alles auswählen
load$=OpenFileRequester("","","Text|*.txt",0)
ReadFile(0,load$)
length=Lof()
*MemoryID=AllocateMemory(length)
If *MemoryID:bytes=ReadData(*MemoryID,length):EndIf
CloseFile(0)
OpenFile(1,"orte.txt")
haeppchen=1024
pakete=bytes/haeppchen
uebrig=bytes-(pakete*haeppchen)
If pakete>0 ; wenn Datei größer als 1024 Bytes
For i=1 To pakete
WriteData(*MemoryID+(i*haeppchen)-haeppchen,haeppchen)
Next
; falls noch ein Rest ist...
If uebrig>0
WriteData(*MemoryID+(bytes-uebrig)-haeppchen,uebrig)
EndIf
Else
; Datei ist kleiner als 1024 Bytes...
WriteData(*MemoryID,uebrig)
EndIf
CloseFile(1)
Wo liegt mein Fehler? Kann nur was Einfaches sein, aber je mehr ich daran rumändere, desto gravierender werden die Fehler
