Hilfe beim speichern in INI Dateien

XanRaZoR

Mitglied
Hi,
nach längerem nur zusehen und nicht posten hab ich jetzt doch eine Frage und hoffe mir kann hier geholfen werden (denke es ist eine Kleinigkeit ^^).

Hab mich gestern zum ersten mal mit Speichern von Sachen in .ini Files beschäftigt. Hab dafür diese Anleitung verwendet und es mir so selbst beigebracht. Es funktioniert alles beim Speichern und auch alles beim Laden bis auf eines:

Ich habe ein 2d-Spiel bei dem die Map in Abschnitte unterteilt ist (A1, A2, A3, B1, B2, etc.) gemacht und möchte abspeichern in welchem Feld man sich gerade befindet. Beispiel man steht in C5 und beim laden soll man genau dort auch wieder "erscheinen".

Das speichern funktioniert wunderbar (mit WritePrivateProfileString), das laden der Zahlen ebenso (mit GetPrivateProfileInt), einzig Buchstaben und Wörter kann ich nicht laden (keine Ahnung welchen Befehl ich dafür brauche?).

Derzeit ist es so dass das Programm - wenn man im Feld C5 abspeichert - die Zahl also richtig laden kann, den Buchstaben jedoch nicht, sprich man erscheint im Feld A5.

Der Buchstabe und die Zahl werden getrennt gespeichert (falls das wichtig ist).

Hoffe bei dem ganzen drumherum geredet wird mein Problem noch klar und hoffe ihr könnts mir helfen.

Lg,
raz0r
 
Hi,
hab das mit GetPrivateProfileString jetzt ausprobiert, geht allerdings nicht so ganz.

Derzeit hab ichs so gemacht:
Code:
field = GetPrivateProfileString("Position", "Field", "A" & vbNullChar, TmpRetStr, Len(TmpRetStr), App.Path & "\savegames\savegame" & loadval & ".ini")

Die Map setzt sich so zusammen:

Code:
pic_map.Picture = LoadPicture(App.Path & "\Map\" & field & number & ".jpg")

die Variable "number" ladet es korrekt, allerdings kommt beim "Field" immernoch ein Fehler weil das spiel versucht statt A1.jpg die Grafik 11.jpg zu laden.


PS: Ich habs mal versucht die paar Zeilen Code von der Seite abzuschreiben. Vielleicht liegts daran? Muss anmerken dass ich nicht so der absolute VB Spezialist bin.. ^^

Hoffe jemand kann mir helfen. :/

Lg
 
Hallo

Dann hast du dir das Beispiel nicht richtig durchgelesen.

Beispiel:
Code:
Dim RetVal As Long
Dim TmpRetStr As String * 255
Dim field As String

RetVal = GetPrivateProfileString("Position", "Field", "A" & vbNullChar, TmpRetStr, Len(TmpRetStr), App.Path & "\savegames\savegame" & loadval & ".ini")

field = Left$(TmpRetStr, RetVal)
 

Neue Beiträge

Zurück