Procedure.i OpenJSonArray(FileName.s) ; BOOL (True == success)
Protected result, index, jSon
jSon = LoadJSON(#PB_Any, FileName, #PB_JSON_NoCase)
If jSon
ExtractJSONArray(JSONValue(jSon), MyArray()) ; no return value here.
result = #True
EndIf
CompilerIf #PB_Compiler_Debugger
For index = 0 To ArraySize(MyArray())
Debug "Array[" + index + "] = " + MyArray(index)
Next index
CompilerEndIf
ProcedureReturn result
EndProcedure
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Tatsächlich nutze ich JSON mittlerweile viel häufiger als Preference-Dateien.
Ganz einfach, weil man alle seine Daten, Listen, Maps, Arrays, ... wenn sie in einer Struktur aufbewahrt werden, tatsächlich mit drei Befehlen speichern und genauso auch wieder laden kann.
Das ginge mit XML auch, das hat mir aber viel zu viel Overhead.
Und mit Preferencen brichst Du Dir einen ab.
Damit kann man sich auch schön eine kleine Datenbank machen.
Einfach mit Zahlen die Oberobjekte durchnumerrien, wenn ein neuer DS geschrieben wird.
Und am Anfang ein Objekt Datensätze : mit Wert 0. Bei jedem neuen DS wird 1 hochgezählt
und gespeichert. Damit hat man immer die Anzahl DS. Man ist an keine Struktur gebunden.
Damit können dann auch wieder variable DS generiert werden.
Ich war ja auch von Anfang an dabei und hatte sämtliche Versionen mitgemacht.
Ach je, was war das anfangs eine Quälerei mit den Operatoren @Add(),@Mul(), @Div(), Sub(),
die normalen +, *, / - kannte Profan damals noch nicht. Ich hatte damals sogar über 10
Jahre ein Update im Abbo, wo man dann jede kleinste Änderng/Update zugeschickt bekam.
Ab den X-Versionen lohnte sich das dann nicht mehr, weil die Updates weniger wurden.
Das hatte ich auch dann gekündigt.
Es sind recht viele Leute von XProfan zu OureBasic abgewandert. Ich empfinde es ein wenig so, dass wir dem entwachsen sind. XProfan ist gut und eigentlich auch ziemlich mächtig. Und trotzdem super für Anfänger. Aber irgendwann will man mal Threads benutzen. Und Maps. Und so weiter...
Ich hatte schon immer gerne über den Tellerrand geschaut. So war das auch bei PureBasic.
Vor Profan hatte ich mit GW-BASIC, dBase und Clipper gearbeitet.
Heute bin ich froh, daß ich beide Sprachen benutzen kann. Es ist halt so, daß ich mit der
einen Sprache ein Ziel leichter erreichen kann, als bei der anderen und umgekehrt. Und
beide sind für meine privaten Zwecke mehr als ausreichend. Das eine oder andere wünscht
man sich noch als Feature, andererseits hat evtl. die andere Sprache das schon. Ein Beispiel
ist Drag & Drop. Sowas würde ich dann auch eher mit PB realisieren, da schon eingebaut.