Описание версий
Текущая стабильная версия 1.1.7
Идеология: Открываем файл, при этом файл блокируется от записи другими процесами и происходит поиск блоков отмеченых сигнатурой 1CDBMSV8. После открытия следует расчитать CRC32 и далее использовать контрольную сумму для проверки неизменности файла между чтением и записью. После можно читать и записывать блоки в файл, но при этом следует иметь в виду что данная версия компоненты: * Не контролирует перезапись сигнатуры 1CDBMSV8 (ответственность за корректность структуры после такой перезаписи лежит на пользователях, в частности компоненте может не верно отрабатывать функция ПолучитьНомерБлокаФайла) * В буфере текущего блока хранятся 4х байтные неотрИцательные числа с обратным порядком байт, например если файл содержит 01 F1 00 00, то хранится число 0000F101.
Свойства
- Версия/Version - возвращает текущую версию компоненты. Свойство только для чтения.
- КоличествоБлоковФайла/CountBlockFile - возвращает количество блоков в файле, размер одного блока 4096 байт. Свойство только для чтения.
- КоличествоФайлов/CountFiles - количество блоков файла помеченых сигнатурой 1CDBMSV8. Свойство только для чтения.
- НомерТекущегоБлока/TecBlock - номер считаного в буфер блока, размер блока 4096 байт. Свойство только для чтения.
- CRC - контрольная сумма файла, расчитывается процедурой РасчитатьCRC32(). Свойство только для чтения.
Процедуры и функции работы с файлом
- ОткрытьФайл/OpenFile (ИмяФайла) - открывает и блокирует файл.
- РасчитатьCRC32/CallCRC32 () - Расчитывает контрольную сумму файла.
- ЗакрытьФайл/CloseFile () - закрывает файл и снимает с него блокировку.
- ПолучитьНомерБлокаФайла/GetNumerBlockOfFilt (НомерВнутренегоФайла) - Возвращает номер первого блока указаного внутреннего файла в физическом файле.
Процедуры и функции работы с буфером (блоком)
- ПрочитатьБлок/LoadBlock (НомерБлокаВФайле) - читает во внутренний буфер один блок 4096 байт.
- ПолучитьЯчейкуБлока/GetCellsBlock (НомерЯчейки) - Получает значение ячейки считаного блока, номеря ячейки от 1 до 1024, размер одной ячейки 4 байта. Возвращает число в диапазоне от 0 до FFFFFFFF, при этом байты идут в обратном порядке, например если файл содержит 01 F1 00 00, то мы получим число 0000F101.
- УстановитьЯчейкуБлока/SetCellsBlock (НомерБлокаВФайле, УстанавливаемоеЗначение) - Устанавливает одну ячейку в текущий блок.
- ЗаписатьТекущийБлок/SaveTecBlock () - записывает текущий блок.
История версий
- 1.1.7 - добавлено свойство Версия, исправлены ошибки
- 1.0 - (содержит критическую ошибку в компоненте, ПолучитьЯчейкуБлока() возвращает отрицательный результат (переполнения знакового числа integer).)