GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2013-Nov-15

Title: GLB_ON_QUIT
Post by: WPShadow on 2013-Nov-15
Hi,

ich hab mal ein kleines Experiment gemacht und wollte beim Beenden des Programmes die Logs rausschreiben.

Code (glbasic) Select

SUB GLB_ON_QUIT:
LOCAL output$[], tmp$

IF sys_settings.debugging = 1

SPLITSTR(PLATFORMINFO$("TIME"), output$[], " ")

OPENFILE(0, "logs/fps_" + output$[0] + "_" + output$[1] + ".txt", -1)

IF LEN(fps_log[]) > 0

FOREACH m IN fps_log[]

tmp$ = m.date$ + " | fps: " + m.log_fps

WRITELINE 0, tmp$

NEXT

ENDIF

CLOSEFILE 0

ENDIF

ENDSUB


Leider bekomme ich nur die Fehlermeldung: error 3 zurück geworfen und die Logs werden nicht geschrieben.

Irgendeine Idee, was error 3 zu bedeuten hat? Ich wäre ganz glücklich, wenn mir hier jemand helfen könnte!  =D

LG

W.
Title: Re: GLB_ON_QUIT
Post by: Quentin on 2013-Nov-15
du schreibst OPENFILE ... -1, also anhängen an bestehende Datei.
Besteht die Datei denn wirklich schon? Oder soll die erst neu geschrieben werden? In dem Fall wäre Option "0" wohl die richtige.

Da die Uhrzeit Bestandteil des Dateinamens ist, gehe ich mal davon aus, dass die Datei zu diesem Zeitpunkt noch nicht besteht :)
Title: Re: GLB_ON_QUIT
Post by: Quentin on 2013-Nov-15
zumindest dieses Minimalbeispiel funktioniert

Code (glbasic) Select

STDOUT "Test Log-Datei"
KEYWAIT
END

SUB GLB_ON_QUIT:
OPENFILE(0, "testglbonquit.txt", FALSE)
WRITELINE 0, "schreib mir mal"
WRITELINE 0, "ne LOG-Datei"
CLOSEFILE 0
ENDSUB

Allerdings müsste es mit -1 auch gehen, wie ich gerade gestest habe. Muss dann wohl doch noch einen anderen Grund haben.


[EDIT]
guck mal hier:
http://de.wikipedia.org/wiki/Dateiname#Problematische_und_unzul.C3.A4ssige_Zeichen_oder_Namen

Dein erzeugter Dateinamen enthält unzulässige Zeichen.
bei mir wäre der Name z.B. "fps_2013-11-15_12:24:06.txt
Die Doppelpunkte mag er wohl nicht

am besten die Doppelpunkte rausschmeissen, dann gehts.
also statt
Code (glbasic) Select
OPENFILE(0, "logs/fps_" + output$[0] + "_" + output$[1] + ".txt", -1)
dann
Code (glbasic) Select
OPENFILE(0, "logs/fps_" + output$[0] + "_" + REPLACE$(output$[1], ":", "") + ".txt", -1)
Title: Re: GLB_ON_QUIT
Post by: WPShadow on 2013-Nov-15
Verflixt, stimmt! An den Doppelpunkt hatte ich gar nicht gedacht.

Das ist eines der Symbole, das von Windows nicht zugelassen wird!

Ich teste es gleich mal! Danke für den Tip! ^^
Title: Re: GLB_ON_QUIT
Post by: WPShadow on 2013-Nov-15
Klasse, hat funktioniert:

Der Filename wird richtig dargestellt und es wird auch korrekt geschrieben: fps_2013-11-15_14_47_03.txt

Code (glbasic) Select

2013-11-15 14:46:55 | fps: 117
2013-11-15 14:46:56 | fps: 122
2013-11-15 14:46:57 | fps: 121
2013-11-15 14:46:58 | fps: 121
2013-11-15 14:46:59 | fps: 122
2013-11-15 14:47:00 | fps: 122
2013-11-15 14:47:01 | fps: 122
2013-11-15 14:47:02 | fps: 122
2013-11-15 14:47:03 | fps: 120


Code (glbasic) Select

SUB GLB_ON_QUIT:
LOCAL output$[], tmp$, time$[]

IF sys_settings.debugging = 1

SPLITSTR(PLATFORMINFO$("TIME"), output$[], " ")
SPLITSTR(output$[1], time$[], ":")

OPENFILE(0, "logs/fps_" + output$[0] + "_" + time$[0] + "_" + time$[1] + "_" + time$[2] + ".txt", -1)

IF LEN(fps_log[]) > 0

FOREACH m IN fps_log[]

tmp$ = m.date$ + " | fps: " + m.log_fps

WRITELINE 0, tmp$

NEXT

ENDIF

CLOSEFILE 0

ENDIF

ENDSUB
Title: Re: GLB_ON_QUIT
Post by: Schranz0r on 2013-Nov-15
Willi was tusch du ? :D
Title: Re: GLB_ON_QUIT
Post by: WPShadow on 2013-Nov-15
Experimentieren!  :D

Hat auch genauso gefunzt, wie ich es mir gedacht hatte!