Noch nicht registriert? Registrier Dich jetzt!
Probleme beim Anlegen von Dateien
Autor Thema
Profil Webseite
Hallo Wolfgang
Ich versuche über
AssignFile(log_file,log_file_name);
FileMode:= 2; { file access read / write }
{$i-}
Rewrite(log_file,2);
{$i+}
eine Datei anzulegen, was nicht funktioniert.
Als Fehlercode bekomme ich eine 12 zurück, kann damit allerdings auch nichts anfangen.

Hast Du eine Ahnung woran das liegen kann?

Servus

Wolfgang
 
 
Profil Webseite
Hallo!

Ich vermute, dass Du in der Variable "InOutRes" den Wert 12 erhälst. Dieser Fehler wird direkt von den API-Calls gefüllt. d.h. bei 12 = ERROR_INVALID_ACCESS.
Anscheinend gibt es Probleme mit der Berechtigungen.

Was mir nur aufgefallen ist:
.) Ich selber verwende AssignFile nicht, sondern Assign.

.) Meiner Meinung nach ist es besser, wenn Du die Stream-Klassen verwendest. Die sind weit aus flexibler und funktionieren auch unter OS/2 und Windows (beides getestet)

.) Du versuchst anscheinend eine Log-Datei zu erstellen. Es gibt in der Unit uSysClass eine Klasse mit dem Namen tcLog. Die erzeugt eine Log-Datei. Die Klasse funktioniert sowohl unter OS/2 als auch unter Windows.

.) Weiters ist es so, dass wenn Du ein Programm mit den SPCC(GUI)-Klassen erstellst, dass man ein Logging einschalten kann. d.h. wenn Du das Programm kompilierst und bei der EXE den Parameter -LOG angibst, dann wird in dem Verzeichnis in der sich die EXE befindet eine ".LOG" erzeugt und es werden diverse Informationen ausgegeben. In den Sourcen kann man mittels der Funktion "Application.LogWriteln("xyxx");" Informationen in die LOG-Datei schreiben.

bye,
Wolfgang
 
 
Profil Webseite
Hallo!

Durch Zufall bin ich auch über das Problem gestoßen.
Das Problem liegt bei der Deklarierung von FileMode und zwar musst Du der Variable FileMode den Wert 32 (fmOpenRead Or fmShareDenyWrite) zu weisen.
Es gibt auch in der uStream-Unit die Konstante "Stream_OpenRead".

bye,
Wolfgang