Export to GitHub

restoration-base-1c8 - Bin1CD.wiki


Описание версий

Текущая стабильная версия 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).)