Problem mit RunProgram

Anfängerfragen zum Programmieren mit PureBasic.
KoopaOne
Beiträge: 14
Registriert: 04.08.2006 14:30
Kontaktdaten:

Beitrag 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 ....
| Win XP SP2 | PB 4.0 |
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag 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
PB 5.10 Windows 7 x64
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

CloseFile(..) ?
my pb stuff..
Bild..jedenfalls war das mal so.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
KoopaOne
Beiträge: 14
Registriert: 04.08.2006 14:30
Kontaktdaten:

Beitrag 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!
| Win XP SP2 | PB 4.0 |
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag 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
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Ja, Deine Lösung war richtig. Dankeschön!
supi!! :D

und dank #NULL hast du auch nen append beispiel.

Ciao
jpd
PB 5.10 Windows 7 x64
KoopaOne
Beiträge: 14
Registriert: 04.08.2006 14:30
Kontaktdaten:

Beitrag von KoopaOne »

herzlichen Danke Euch beiden, das funktioniert wunderbar *gg*

Pureboard rocks!
| Win XP SP2 | PB 4.0 |
Antworten