Seite 1 von 1
Speichern von Einstellungen usw.
Verfasst: 05.10.2008 19:39
von rolstra
Hallo Leute,
bin ein absoluter Anfänger in Sachen PureBasic. Hätte da eine prinzipielle Frage: Wie kann am einfachsten eine Einstellung aus einem Programm heraus gespeichert werden - und ggf. wieder eingelesen werden? Geschieht das am einfachsten, in dem man eine Textdatei schreibt/liest oder eine squlite-Datei? Gibt es hierzu irgendwo eine Anleitung?
Vielen Dank
Roland.
Verfasst: 05.10.2008 19:40
von milan1612
Schau dir mal die Preferences Befehle in der Hilfe an
Hier ein bisschen Code aus dem beiliegenden Beispiel:
Code: Alles auswählen
If CreatePreferences("Preferences.prefs")
PreferenceGroup("Global")
WritePreferenceString("ApplicationName", "MP3 Player")
WritePreferenceString("Version", "1.1b")
PreferenceComment(" This is the Window dimension")
PreferenceComment("")
PreferenceGroup("Window")
WritePreferenceLong ("WindowX", 123)
WritePreferenceLong ("WindowY", 124)
WritePreferenceFloat("WindowZ", -125.5)
ClosePreferences()
EndIf
OpenPreferences("Preferences.prefs")
PreferenceGroup("Window")
Debug ReadPreferenceLong ("WindowX", 0)
Debug ReadPreferenceLong ("WindowY", 0)
Debug ReadPreferenceFloat("WindowZ", 0)
PreferenceGroup("Global")
Debug ReadPreferenceString("ApplicationName", "")
Debug ReadPreferenceString("Version", "")
ClosePreferences()
Verfasst: 06.10.2008 16:49
von hjbremer
Preference Befehle empfehlen sich für umfangreichere Ini Dateien in denen auch variable Zeichenketten stehen.
für einfache wenige Zahlenwerte und Zeichenketten fester Länge kann man dies auch simpel über eine Struktur lösen und diese binär speichern und lesen.
hier ein einfaches Beispiel
Code: Alles auswählen
Structure programmvariablen
a.l
b.l
c.l
d.l
s.s{30}
x.l[10]
EndStructure
Global prgv.programmvariablen
prgv\a = 123
prgv\b = 456
prgv\c = 789
prgv\d = 159
prgv\s = "dies ist ein Test"
prgv\x[0] = 147
prgv\x[9] = 963
Procedure PrgvWrite()
lg = SizeOf(prgv)
pt = @prgv
dnr = OpenFile(#PB_Any,"test.bin")
WriteData(dnr, pt,lg)
CloseFile(dnr)
EndProcedure
Procedure PrgvRead()
lg = SizeOf(prgv)
pt = @prgv
dnr = OpenFile(#PB_Any,"test.bin")
ReadData(dnr, pt,lg)
CloseFile(dnr)
EndProcedure
PrgvWrite()
PrgvRead()
Debug prgv\a
Debug prgv\b
Debug prgv\c
Debug prgv\d
Debug prgv\s
Debug prgv\x[0]
Debug prgv\x[9]
Verfasst: 06.10.2008 17:13
von kswb73
Hier mal ein auskommentiertes Beispiel mit einer Konsole. Ich setzte vorraus das du schon mit Konsolen arbeiten kannst und weißst was ein String ist.
Code: Alles auswählen
OpenConsole()
OpenPreferences("Save.sav");Wir öffnen eine Datei (als Preference)
;Als nächstes lesen wir die Datei aus.
;Dabei wird immer ein "Sprungwort" benutzt um die Werte zu finden.
;Dies ist der erste Wert.
;Der Zweite wert ist das Alternativergebnis.
;Dieses wird ausgegeben wenn das Sprungwort nicht existiert.
Text.s=ReadPreferenceString("Text","noch keine Eingabe")
Zahl=ReadPreferenceLong("Zahl",0)
ClosePreferences() ;Wir schließen die Datei wieder.
PrintN(Text)
PrintN(Str(Zahl))
PrintN("")
PrintN("Bitte geben sie einen Text ein:")
text=Input()
PrintN("Bitte geben sie eine Zahl ein:")
Zahl=Val(Input())
CreatePreferences("Save.sav");Diesmal erstellen wir eine Datei.
;Das Speichern funktioniert wie das laden nur eben wird hier der Wert eingegeben.
;Der erste Wert ist das Sprungwort unter dem man nacherher den eingegebenen Wert findet.
;Der zweite Wert ist der der beim auslesen ausgegen wird.
WritePreferenceString("Text",Text)
WritePreferenceLong("Zahl",Zahl)
ClosePreferences();Wir schließen aus diese Datei um die Ressourcen freizugen und das speichern zu beenden.