Problem beim auslesen einer *.ini und deren verarbeitung

Previous topic - Next topic

D2O

Hallo,
ich bin hier schon richtig am verzweifeln :(

Für unsere UT Gilde wollte ich meine UT Cache Manager etwas grafisch aufpeppen.
Habe hier aber ein Problem mit dem einlesen und verarbeiten  einer ini Datei.

es geht um die variablen:
Code (glbasic) Select
GLOBAL mycache$
GLOBAL mysystem$
GLOBAL mytextures$
GLOBAL mystaticmeshes$
GLOBAL mymaps$
GLOBAL myanimations$
GLOBAL mysounds$
GLOBAL cachepath$

und die Functionen
Code (glbasic) Select

opensysini()
openutini()


Es wird eine sys.ini im ordner Sys ausgelesen, bzw. erstellt wenn sie nicht vorhanden ist oder falsche Pfadangaben zur cache.ini hat.
Wenn es ans auslesen geht,
kann ich beim debuggen ja sehen was für einen wert die obengenannten variablen haben/erhalten.


Nun werden die Variablen mit den Daten aus der sys.ini gefüllt und hier läuft irgendetwas falsch!
z.b wird mycache$ mit den richtigen werten gefüllt,
mymaps auch und die anderen variablen bleiben leer!
Beim nächste Debuggstart kann alles gleich bleiben und dann aufeinmal werden die anderen Variablen richtig "gefüllt" aber es bleibt z.b Maps leer obwohl
es davor functioniert hat!?

Dann möchte ich die Variable cachepath$ mit der Rückgabe von Replace$(mycache$,"cache.ini","") füllen,
die bleibt aber auch leer.

Schneide ich die Funktionen aus und mache dann ein neues Projekt und lasse dort die zwei functionen ausführen, geht alles richtig!?
Nur im Original Programm nicht.

Hier mal einen Downloadlink für das Projektfile, in der zip ist auch ein kleines Video enthalten wo man sieht wie sich die Variablen verhalten,
zuerst im Original Programm und dann nur die functionen selber.
Falls es Probleme mit dem Abspielen geben sollte, es wurde der fddshow codec benutzt. Der VLC Player kann das abspielen.

http://rapidshare.com/files/195431798/BalleBurg_CM_V3.zip
Ich such mir echt einen Wolf und habe schon wieder selbtszweifel.


Edit:// Zwei sachen haben ich vergessen:
1.) im ordner liegt eine leere cache.ini dabei. Also zuerst das programm "normal" starten, die cache.ini auswählen und dann mit "Exit" beenden. Jetzt werden in der sys.ini die "richtigen" pfadangaben zur ini geschrieben.
Erst jetzt mal den Debugger dazuschalten und die Variablen beobachten.

2.) Danke :)
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

D2O

Sorry für den Doppelpost, ich wollte das ganze aber hervorheben.

Ich glaube einen Bug gefunden zu haben.
Ich habe nun den Code stück für stück "kastriert", so das nur noch die Openini() die dazugehörigen Globalen Variablen
und die Array's dabei waren.

In dem Momen wo ich die Arrays rausgelöscht habe, lief das ganze wieder normal.
Dann habe ich den Original Code wieder benützt und dort nur die Zeile:
Code (glbasic) Select

@_array:

DIM a_utini$[1]
//DIM a_sysini$[1]
DIM a_log$[1]


in
Code (glbasic) Select

@_array:

//DIM a_utini$[1]
////DIM a_sysini$[1]
//DIM a_log$[1]



Auskommentiert und nochmals mit dem Debugger überprüft, jetzt wird die sys.ini korrekt ausgelesen und die werte richtig übergeben.

Bitte überprüft das mal ob es bei Euch genaus ist und nicht nur bei mir.
Dann ist es ein Bug.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Schranz0r

Was soll den genau rauskommen ?
UT-Gilde.... nicht UT-Clan?
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

D2O

Im Cache von UT2004 werden die Runtergeladenen Map, Sounds...usw. mit Kyptischen Namen gespeichert.
In der cache.ini stehen diese Name und der Reale Name wie die Datei heisen würde.

Das wird ausgelesen, überprüft ob die Datei vohanden ist, wenn nicht, mit dem Richtigen Namen und Dateiendung in den jeweiligen Ordner
kopiert.

Eigendlich ganz einfach und simpel. Das Tool dazu habe ich schon in BB und GLB geschrieben und im einsatz(Nur starten und fertig),
nur muss es sich im UT2004 befinden und von dort aus aufgerufen werden.

Mir ging es darum die Pfad angaben auzulesen damit das Tool von jeder "position" aus benutzt werden kann.
Und um es etwas Grafisch aufzupeppen ;) "PimpMyProg"

Sound, Namen der Mitglieder... sollen auch mit rein.
Und was das mit der Gilde angeht, wir sind kein fester Clan mit Mitgliedsbeiträgen,PflichtTraining...usw.
Allerdings gibt es bei uns einige die nehmen das etwas ernster und machen auch dementsprecht War's aus.
Aber alle zusammen ein Lustiger Haufen :)

Aber was anderes, wird bei Dir die sys.ini korrekt ausgelesen?
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell