öhm ... also eigentlich sollten auch Strukturierte Listen funktionieren, solange sie keine Strings, Maps und Sublisten enthalten. Statische Strings ins Strukturen sind kein Problem. Es würde sicher funktionieren auch dynamische Strukturen zu speichern, nur müsste man für jede Struktur eine eigene Speicher-Routine schreiben, ob das universell machbar ist weis ich nicht, jedenfalls wäre mich jetzt kein Weg bekannt
Die Packroutinen sind schnell erklärt, einfach per optionalem Parameter wählen, default ist zLib:
Frei aus deinem Beispiel:
Code: Alles auswählen
SC_AddEntry(SC, "huhu", @Test, Len(Test))
SC_AddEntry(SC, "huhu", @Test, Len(Test), #SC_zLib)
SC_AddEntry(SC, "huhu", @Test, Len(Test), #SC_bZip2, 9)
SC_AddEntry(SC, "huhu", @Test, Len(Test), #SC_aPLib)
SC_AddEntry(SC, "huhu", @Test, Len(Test), #SC_LZMA, 9, #LZMA_DICT_4M)
Mehr muss man nicht tun, packen & entpacken mit je dem richtigen Packer übernimmt SC.
Der nächste optionale Parameter bestimmt die Kompressionsstärke (immer 0-9, 0 = keine Kompression, Default = 7).
Der letzte optionale Parameter ist nur für LZMA relevant und bestimmt die Wörtbuchgröße, zwischen 4K und 256M, der Defaultwert passt aber für die meisten Fälle.
Das sichere Löschen ist auch einfach ein zusätzlicher Parameter bei DeleteEntry() und die meisten anderen neuen Features (schnellerer Zugriff bei vielen Einträgen, Cachesystem) arbeiten im Hintergrund, da ist kein manuelles Zutun nötig.
Und in der Datei SC_Test.pbi sind Demo Pack- und Entpack-Routinen für Dateien enthalten die auch ein bisschen die XtraData() - Befehle demonstrieren.
Um das Callback zu Demonstrieren müsste ich fast mal eine kleine Demoanwendung stricken, mal sehen ob ich dafür zeit finde. Irgendwann heute ist mir die Idee gekommen SC als Storage - System für einen FTP - Server zu verwenden, dafür müsste es sich ganz gut eignen, dann würden sich die ganzen Caching & Performance Einbauten auch mal auszahlen
Derzeit baue ich ein Log-System ein das ich auch extra posten werde, dann gibts eine neue Version.
Gruß, Alex