KSDAT v0.5 Reference
1. Описание
KSDAT-Open Souce модуль для хранения данных программы (файлов, неких записей и т. д.), поддерживающий отключаемое
при необходимости сжатие и возможность лёгкого добавления шифрования. Структура хранения данных в памяти построена на коллекциях
записей, в которых легко оперировать данными(добавление, удаление, модификация). При сохранении
данных в файл, происходит их компрессия(если не указано обратное) и вызов пользовательской процедуры
дополнительной обработки(если таковая имеется), в которой можно, например, зашифровать данные; при открытии файла вызывается другая процедура
пользователя, которая должна привести данные в исходный вид, затем происходит распаковка и воссоздание структуры записей в коллекции.
KSDAT обладает довольно таки быстрым алгоритмом сжатия, взятым из примера Compress_Methods.
2. С чего начать?
Для начала посмотрите пример использования модуля-небольшой архиватор, затем посмотрите описания свойств и методов объектов KSDAT ниже.
3. Обзор классов KSDAT
1.) KSDAT_DB
Это-основной модуль, служащий для сборки, сжатия, сохранения и загрузки данных. Ниже следует обзор его свойств и методов:
Load(FileName As String) - Загружает и обрабатывает файл, извлекая из него данные и их структуру.
SetBinary(Data() As Byte) - Тоже самое, но принимает массив байт, содержащих структуру и данные, который можно получить вызвав CreateBinary. Может быть полезно,
если вы, например, хотите держать в одном DAT несколько других и загружать их прямо их памяти.
Save(FileName As String, Optional NoCompress As Boolean) - собирает, сжимает и сохраняет данные на диск. Если NoCompress=True, то сжатия не происходит.
CreateBinary(Optional NoCompress As Boolean) As Byte() - собирает и сжимает данные, возвращая полученный массив байт, который в последствии можно присвоить
какому нибудь KSDAT_DB, методом SetBinary. Если NoCompress=True, то сжатия не происходит.
Event BeforeSave(Data() As Byte) - вызывается перед сохранением готового DAT'а. Вы можете зашифровать массив Data или провести какие-либо другие операции,
но тогда вы должны привести их в исходный вид, при вызове BeforeLoad
Event BeforeLoad(Data() As Byte) - вызывается перед обработкой данных. Если вы изменяли данные в BeforeSave, то вы должны привести их в исходный вид.
Property DataRecords (Read-only) - возвращает коллекцию записей.
2.) KSDAT_DRCollection
Это-коллекция записей в KSDAT_DB. Возможно перечисление For Each ... In ... .Ниже слежует обзор методов:
Add(Data() As Byte, dName As String, Optional Before, Optional After) As KSDAT_DataRecord - добавляет запись. Data() - массив данных, dName-заголовок,при сохранении обрезаемый до 256 символов.
Возвращает ссылку на созданный KSDAT_DataRecord.
AddBin(Data() As Byte, Optional Before, Optional After) As KSDAT_DataRecord - служебная
Count() As Long - возвращает количество записей.
Remove(Index) - удаляет элемент.
Item(Index) As KSDAT_DataRecord - возвращает запись с указанным индексом
3.) KSDAT_DataRecord
Это-класс записи. Ниже следует обзор его свойств и методов:
SetData(Data() As Byte) - задаёт массив данных. Массив копируется, а не держится по ссылке.
GetData() As Byte() - возвращает свежескопированный массив данных.
Property dName() As String - заголовок. Не более 256 символов.
SetBinary(Data() As Byte) - служебная
GetBinary(Data() As Byte) - служебная
(c) Цуканов Никита aka keks-n Апрель 2006