JSON ou Preference ?
Publié : jeu. 31/mars/2016 11:49
Deux méthodes pour sauvegarder les paramètres d'une application.
■ La méthode traditionnelle utilisant la bibliothéque Preference.
http://www.purebasic.com/french/documen ... FileName.s = GetCurrentDirectory() + "Preferences.prefs"
;Définaition des paramétres
ApplicationName.s = "Test"
Version.s = "1.00"
WindowX = 100
WindowY = 100
WindowW = 800
WindowH = 400
;-Sauvegarde des paramétres
If CreatePreferences(GetTemporaryDirectory()+"Preferences.prefs")
WritePreferenceString("ApplicationName", ApplicationName)
WritePreferenceString("Version", Version)
WritePreferenceLong ("WindowX", WindowX)
WritePreferenceLong ("WindowY", WindowY)
WritePreferenceFloat("WindowW", WindowZ)
WritePreferenceFloat("WindowH", WindowH)
ClosePreferences()
EndIf
;-Lecture de la configuration
If OpenPreferences(GetTemporaryDirectory()+"Preferences.prefs")
ApplicationName.s = ReadPreferenceString("ApplicationName", "")
Version.s = ReadPreferenceString("Version", "")
WindowX = ReadPreferenceLong ("WindowX", 0)
WindowY = ReadPreferenceLong ("WindowY", 0)
WindowW = ReadPreferenceFloat("WindowW", 0)
WindowH = ReadPreferenceFloat("WindowH", 0)
ClosePreferences()
EndIf
;Controle
Debug ApplicationName.s
Debug Version
Debug WindowX
Debug WindowY
Debug WindowW
Debug WindowH[/code]
■ La méthode utilisant la bibliothéque JSON
http://www.purebasic.com/french/documen ... ]#JSONFile = 0
FileName.s = GetCurrentDirectory() + "Preferences.prefs"
Structure Param
ApplicationName.s
Version.s
WindowX.i
WindowY.i
WindowW.i
WindowH.i
EndStructure
Setup.Param
;Définaition des paramétres
With Setup
\ApplicationName.s = "Test"
\Version.s = "1.00"
\WindowX = 100
\WindowY = 100
\WindowW = 800
\WindowH = 400
EndWith
;-Sauvegarde des paramétres
CreateJSON(#JSONFile)
InsertJSONStructure(JSONValue(#JSONFile), @Setup, Param)
SaveJSON(#JSONFile, FileName, #PB_JSON_PrettyPrint)
;-Lecture de la configuration
LoadJSON(#JSONFile, FileName, #PB_JSON_NoCase)
ExtractJSONStructure(JSONValue(#JSONFile), @Setup, Param)
;Controle
With Setup
Debug \ApplicationName.s
Debug \Version
Debug \WindowX
Debug \WindowY
Debug \WindowW
Debug \WindowH
EndWith
[/code]
Enregistrer ces deux codes dans un dossier.
J'ai une préférence pour la méthode JSON que je trouve plus sexy.
■ La méthode traditionnelle utilisant la bibliothéque Preference.

;Définaition des paramétres
ApplicationName.s = "Test"
Version.s = "1.00"
WindowX = 100
WindowY = 100
WindowW = 800
WindowH = 400
;-Sauvegarde des paramétres
If CreatePreferences(GetTemporaryDirectory()+"Preferences.prefs")
WritePreferenceString("ApplicationName", ApplicationName)
WritePreferenceString("Version", Version)
WritePreferenceLong ("WindowX", WindowX)
WritePreferenceLong ("WindowY", WindowY)
WritePreferenceFloat("WindowW", WindowZ)
WritePreferenceFloat("WindowH", WindowH)
ClosePreferences()
EndIf
;-Lecture de la configuration
If OpenPreferences(GetTemporaryDirectory()+"Preferences.prefs")
ApplicationName.s = ReadPreferenceString("ApplicationName", "")
Version.s = ReadPreferenceString("Version", "")
WindowX = ReadPreferenceLong ("WindowX", 0)
WindowY = ReadPreferenceLong ("WindowY", 0)
WindowW = ReadPreferenceFloat("WindowW", 0)
WindowH = ReadPreferenceFloat("WindowH", 0)
ClosePreferences()
EndIf
;Controle
Debug ApplicationName.s
Debug Version
Debug WindowX
Debug WindowY
Debug WindowW
Debug WindowH[/code]
■ La méthode utilisant la bibliothéque JSON

FileName.s = GetCurrentDirectory() + "Preferences.prefs"
Structure Param
ApplicationName.s
Version.s
WindowX.i
WindowY.i
WindowW.i
WindowH.i
EndStructure
Setup.Param
;Définaition des paramétres
With Setup
\ApplicationName.s = "Test"
\Version.s = "1.00"
\WindowX = 100
\WindowY = 100
\WindowW = 800
\WindowH = 400
EndWith
;-Sauvegarde des paramétres
CreateJSON(#JSONFile)
InsertJSONStructure(JSONValue(#JSONFile), @Setup, Param)
SaveJSON(#JSONFile, FileName, #PB_JSON_PrettyPrint)
;-Lecture de la configuration
LoadJSON(#JSONFile, FileName, #PB_JSON_NoCase)
ExtractJSONStructure(JSONValue(#JSONFile), @Setup, Param)
;Controle
With Setup
Debug \ApplicationName.s
Debug \Version
Debug \WindowX
Debug \WindowY
Debug \WindowW
Debug \WindowH
EndWith
[/code]
Enregistrer ces deux codes dans un dossier.
J'ai une préférence pour la méthode JSON que je trouve plus sexy.