Das Einzige was du braucht ist InsertJSONStructure(...) und ExtractJSONStructure(...).
Also genau so wie bei meinen Link nur mit XML. Siehe LoadProjectData(...) und SaveProjectData(...)
Mehr braucht man nicht, da Listen oder Arrays in Strukturen mit übernommen werden.
Auszug
Code: Alles auswählen
Structure udtProjectData
Version.i
Date.s
; Data
;TODO Any Data
List Text.s()
EndStructure
Global ProjectData.udtProjectData
; ----
Procedure LoadProjectData(FileName.s, *ProjectData.udtProjectData)
Protected xml
If FileSize(FileName) > 0
xml = LoadXML(#PB_Any, FileName)
If xml And XMLStatus(xml) = #PB_XML_Success
ExtractXMLStructure(MainXMLNode(xml), *ProjectData, udtProjectData, #PB_XML_NoCase)
FreeXML(xml)
ProcedureReturn #True
EndIf
EndIf
ProcedureReturn #False
EndProcedure
; ----
Procedure SaveProjectData(FileName.s, *ProjectData.udtProjectData)
Protected r1, xml
xml = CreateXML(#PB_Any)
If xml
*ProjectData\Version = 101
*ProjectData\Date = FormatDate("%YYYY-%MM-%DD %HH.%II.%SS", Date())
If InsertXMLStructure(RootXMLNode(xml), *ProjectData, udtProjectData)
FormatXML(xml, #PB_XML_ReFormat)
If SaveXML(xml, FileName)
r1 = #True
Else
r1 = #False
EndIf
EndIf
FreeXML(xml)
EndIf
ProcedureReturn r1
EndProcedure