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:
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.
PRINT INIGET$("inventar", "textur") ,0,0
SHOWSCREEN
MOUSEWAIT
Wenn's NO_DATA liefert, bitte mal die .ini Datei schicken.
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.
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:
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.
Bald habe ich meinen Zugang. Dann skype ich dich an... :-)