GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2006-Mar-29

Title: INI - Aufruf
Post by: WPShadow on 2006-Mar-29
Und zwar folgendes Problem:

Ich habe eine *.ini - Datei worin folgende Daten vorhanden sind:

[Inventar]
3dmodell=data/modell/cockpit.ddd
textur=data/textur/schiff.bmp
...


Ich versuche es folgendermaßen zu laden:

Code (glbasic) Select
iniopen (habe jetzt den Befehl nicht genau im Kopf, aber es funktioniert...)

modell = iniget$("inventar", "3dmodell")
textur$ = iniget$("inventar", "textur")

x_loadobj modell, schiff1
loadsprite textur$, 2
Das Modell wird geladen, aber die Textur bleibt weiss. Ich habe schon alles überprüft. Die Dateien sind in den richtigen Ordnern, sie haben die richtige Größe, ansich müßte alles passen...

Dennoch ist es nur strahlend hell. Und wenn ich es aber direkt lade loadsprite "data/textur/schiff", 2 dann funktioniert es...

HILFE!!!

GLG

W.
Title: INI - Aufruf
Post by: Kitty Hello on 2006-Mar-29
Code (glbasic) Select
PRINT INIGET$("inventar", "textur") ,0,0
SHOWSCREEN
MOUSEWAIT
Wenn's NO_DATA liefert, bitte mal die .ini Datei schicken.
Title: INI - Aufruf
Post by: WPShadow on 2006-Mar-30
Glaube eher, daß das Problem beim "Buffer" liegt. Dort bleiben die Daten gespeichert!

Folgendermaßen:

modell$ = iniget$("inventar", "3dmodell")
textur$ = iniget$("inventar", "textur")

stehen in der *.ini - Datei. Der Inhalt ist:

modell$ = data/modell/cockpit.ddd
textur$ = data/modell/schiff.bmp

Ich lasse mir beides mit Print ausgeben und bemerke nichts. Dann das selbe, nur daß ich Schiff.bmp in den Hauptordner verschiebe und es in der *.ini angebe. Daraufhin bekomme ich folgende Ausgabe:

schiff.bmpdata/modell/cockpit.ddd

Das Problem habe ich so gelöst:

modell = iniget$("inventar", "3dmodell")
temp = iniget$("tmp", "temp")
textur$ = iniget$("inventar", "textur")

Der Temp - Wert löscht praktisch gesehen die gesamte vorhergehende Eingabe:

[tmp]
temp=

Ansonsten bleibt alles im Buffer, wie mir scheint...

Bin gestern Abend bis nach Mitternacht daran gesessen! :-)

Wenigstens funktioniert es jetzt...

GLG

W.
Title: INI - Aufruf
Post by: Kitty Hello on 2006-Mar-30
Wenn Du die .ini änderst, startest Du ja nochmal das Programm neu, oder?
Oder nicht? Dann kapier ich's schon...

Also, die INI-Textdatei wird nur gelesen, bei einem INIOPEN. Dann aber auch nur, wenn er genau diese Datei nicht schon im INI-Buffer hat. Wenn Du was am laufenden Programm änderst, dann musst Du schreiben:
Code (glbasic) Select
INIOPEN("")
INIOPEN("gleiche Datei nochmal.ini")
Sollte das nicht das Problem sein, bitte ein Beispiel zusammenbauen, an dem ich's nachvollziehen kann. Sorry, das Du Dich mit sowas so lange 'rumärgern musstest. Ich war gestern übrigens online - einfach mal versuchen anzuskypen bei solchen Problemen.
Title: INI - Aufruf
Post by: WPShadow on 2006-Apr-03
Bald habe ich meinen Zugang. Dann skype ich dich an... :-)