(Dieses Handling wird zum Export von Datenbank-Tables genutzt...)
In meinem folgenden Beispiel, kommt ein IMA direkt bei Max = 200.000 .... bei 100.000 noch nicht.
Es ist auch egal ob man ASM oder C-Backend nutzt.
Mit x64 ist das ganze kein Problem, da rauscht es ohne Fehlermeldung durch, Egal wie gross die Liste ist.
Code: Alles auswählen
Structure s_resultItem
AsString.s
AsNumber.q
EndStructure
Structure s_result
Map Column.s_resultItem()
EndStructure
NewList Row.s_result()
Procedure.i ExportResults(FileName.s, List Row.s_result())
Protected jSon = CreateJSON(#PB_Any, #PB_JSON_NoCase)
Protected Result = #False
If jSon
Debug ListSize(Row())
InsertJSONList(JSONValue(jSon), Row())
Result = SaveJSON(jSon, FileName, #PB_JSON_PrettyPrint)
FreeJSON(jSon)
EndIf
ProcedureReturn Result
EndProcedure
Filename.s = "R:\testfile.json" ; Change it !
Max = 200000 ; IMA at InsertJSONList()
;Max = 100000 ; No Error
For i=1 To Max
AddElement(Row())
For x = 65 To 89
Row()\Column(Chr(x))\AsString = Chr(x) + "a1"
Row()\Column(Chr(x))\AsNumber = Random(200000, 0)
Next x
Next i
ExportResults(Filename, Row())
Edit : x86 ist leider wichtig, da in dem Projekt die EZTW.lib genutzt wird und die leider nur in 32Bit zur Verfügung steht!