GLB_ON_QUIT

Previous topic - Next topic

WPShadow

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.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Quentin

#1
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 :)

Quentin

#2
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)

WPShadow

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! ^^
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

WPShadow

#4
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
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

Willi was tusch du ? :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

Experimentieren!  :D

Hat auch genauso gefunzt, wie ich es mir gedacht hatte!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est