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
verfasst: 21.12.2007, 09:23
registriert:
Dezember 2006
Status:
offline
letzter Besuch:
11.02.09
Beitr�ge:
73
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
verfasst: 27.12.2007, 21:03
registriert:
Dezember 2006
Status:
offline
letzter Besuch:
11.02.09
Beitr�ge:
73
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".