Seite 1 von 1
Bug in CreateFile() ?
Verfasst: 13.02.2005 18:36
von Kooky
Hi,
wieso geht folgender Code mit CreateFile() nicht aber mit OpenFile() ?
Code: Alles auswählen
Debug "CreateFile"
If CreateFile(0,"test1.txt")
For x = 0 To 2
FileSeek(0)
count = ReadLong()
Debug count
FileSeek(0)
WriteLong(count+1)
Next
CloseFile(0)
EndIf
DeleteFile("test1.txt")
Debug "OpenFile"
If OpenFile(0,"test2.txt")
For x = 0 To 2
FileSeek(0)
count = ReadLong()
Debug count
FileSeek(0)
WriteLong(count+1)
Next
CloseFile(0)
EndIf
DeleteFile("test2.txt")
Ich hab jetzt bestimmt in meinem neusten Projekt ewig nach dem Fehler gesucht und hab festgestellt, dass es daran lag. Hab jetzt extra ein Beispielcode dafür geschrieben, damit das Problem gut verdeutlicht wird.
mfg. Kooky

Re: Bug in CreateFile() ?
Verfasst: 13.02.2005 18:43
von Kiffi
> wieso geht folgender Code mit CreateFile() nicht aber mit OpenFile() ?
sorry, aber Dein Code macht doch recht wenig Sinn.
CreateFile() erstellt eine neue leere Datei. Wieso machst Du darin ein
FileSeek und dann ein ReadLong?
Und bei Deinem OpenFile: Bist Du Dir sicher, dass 'test2.txt' vorhanden ist?
(Zumal Du 'test2.txt' am Ende Deines Codes wieder löscht)
Grüße ... Kiffi
Verfasst: 13.02.2005 18:53
von Kooky
OK.
sorry, aber Dein Code macht doch recht wenig Sinn.
CreateFile() erstellt eine neue leere Datei. Wieso machst Du darin ein
FileSeek und dann ein ReadLong?
mein code soll nicht umbeding sinn ergeben

.
Er soll nur verdeutlichen, dass wenn ich eine Datei mittels CreateFile()
erstelle, ReadLong() , ReadString() und ReadByte() nicht funktioniert.
Und bei Deinem OpenFile: Bist Du Dir sicher, dass 'test2.txt' vorhanden ist?
(Zumal Du 'test2.txt' am Ende Deines Codes wieder löscht)
OpenFile und Createfile sind im grunde doch gleich.
Der einzigste unterschied ist,
dass OpenFile eine Datei öffnet, falls vorhanden und
dass CreateFile eine Datei löscht und dann neu erstellt, falls vorhanden. Wenn keine Datei existiert, dann erstellen OpenFile und CreateFile eine neue.
Also könnte man auch sagen, dass CreateFile nichts anderes macht, als DeleteFile() und danach OpenFile()
Falls ich mich da nicht ganz täusche
Vielleicht vestehst du jetzt besser was ich meine
mfg. Kooky
Verfasst: 13.02.2005 19:09
von ts-soft
CreateFile() erstellt eine neue Datei, Schreibzugriffe und FileSeek funktionieren, Leseoperationen sind aber nicht möglich (machen ja auch keinen Sinn). Also nach dem erstellen schließen und dann mit OpenFile() öffnen
Verfasst: 14.02.2005 08:58
von Lebostein
Wenn du mit CreateFile() eine vorhandene Datei öffnest, dann wird sie gelöscht!! Denn CreateFile() erstellt eine neue Datei, exisiteirt die Datei schon, so wird sie überschrieben.