Seite 2 von 2

Verfasst: 01.10.2007 10:39
von KoopaOne
Ok, voriges Problem habe ich behoben. Jetzt habe ich folgendes, auch unerklärliches, Problem:

Code: Alles auswählen

; ---------------------------------------------------------------
; LOG-Datei erstellen und Schreiben
; ---------------------------------------------------------------

  ini()
  log$=logdir$+FormatDate("%dd_%mm_%yy_%hh_%ii_%ss", Date())+".log"
  ergebnis=OpenFile(1,log$)
  WriteStringN(1, "Arbeitsverzeichnis:                " + workdir$)
  WriteStringN(1, "Verzeichnis für gedruckte Dateien: " + finishdir$)
  WriteStringN(1, " ")
  WriteStringN(1, FormatDate("%hh:%ii:%ss", Date())  + " - Programmstart")

Starte ich das Programm aus dem Editor wird die LOG-Datei einwandfrei erzeugt und auch geschrieben. Erzeuge ich eine EXE daraus, erzeugt er die Datei zwar wunderbar, aber sie ist leer ....

Verfasst: 01.10.2007 11:11
von jpd
Hi KoopaOne,

war es so wie ich vermutet hatte, oder was lief da schief?


zu diesen problem hast du lese und schreibrechte auf log$?

Ciao
jpd

Verfasst: 01.10.2007 15:00
von #NULL
CloseFile(..) ?

Verfasst: 01.10.2007 15:28
von Kaeru Gaman
yup genau...

ohne closefile bleiben die daten im buffer des OS hängen.
windows wartet eben, ob da noch was nachkommt, bevor es wirklich auf die platte schreibt.

Verfasst: 01.10.2007 15:46
von KoopaOne
Hi KoopaOne,
war es so wie ich vermutet hatte, oder was lief da schief?
Ja, Deine Lösung war richtig. Dankeschön!

Ok, das mit CloseFile klingt logisch, aber warum funktioniert das dann, wenn ich das Programm aus dem Editor starte? Und wenn ich die Datei mit Closefile schließe und mit Openfile wieder öffne, löscht er mir da nicht denn Inhalt? Wie mache ich ein Append?

Danke für die Hilfe!

Verfasst: 01.10.2007 15:57
von Kaeru Gaman
> warum funktioniert das dann, wenn ich das Programm aus dem Editor starte?

vermutlich bekommt das OS eine etwas andere "zugriff beendet"-meldung,
als wenn die exe unvollständig ist.
vielleicht sorgt auch die IDE dafür, dass alle kanäle wieder geschlossen werden.
könnte ne debugger-funktion sein, is ja auch sinnvoll.

> Wie mache ich ein Append?

FileSeek bis ans ende, dann erst wieder schreiben.

Verfasst: 01.10.2007 18:45
von #NULL

Code: Alles auswählen

  If OpenFile(1,log$)
    FileSeek(Lof(1))
    WriteStringN(1, "Arbeitsverzeichnis:                " + workdir$)
    WriteStringN(1, "Verzeichnis für gedruckte Dateien: " + finishdir$)
    WriteStringN(1, " ")
    WriteStringN(1, FormatDate("%hh:%ii:%ss", Date())  + " - Programmstart") 
    CloseFile(1)
  EndIf

Verfasst: 01.10.2007 19:57
von jpd
Ja, Deine Lösung war richtig. Dankeschön!
supi!! :D

und dank #NULL hast du auch nen append beispiel.

Ciao
jpd

Verfasst: 02.10.2007 10:33
von KoopaOne
herzlichen Danke Euch beiden, das funktioniert wunderbar *gg*

Pureboard rocks!