Вспомогательные типы данных и функции
Реализация вспомогательных типов данных и утилит содержится в файле siDBPF2Utils.pas
Поддержка типа STBL
Sig: packed array[0..3] of BYTE – сигнатура записи, содержит текст "STBL", при сравнении удобно сравнивать сигнатуру не побайтно, а сразу как 32-разрядное целое: (PInt(@Sig[0])^<>$4C425453);
Ver: BYTE – версия формата???, равна 2;
Reserved1: packed array[0..1] of BYTE – неизвестно, равно 0 ???;
Count: DWORD – число записей в таблице;
Reserved2: packed array[0..5] of BYTE– неизвестно, равно 0 ???;
Hash64: UInt64 – FNV64 хэш локализуемой строки;
Lenght: DWORD – длина замещающей строки в символах;
Str: packed array of char – замещающая (локализующая) строка, содержит Length символов UniCode;
Вычисление хэша FNV
function FNV64(s: string) – вычисляет хэш FNV64 строки символов
function FNV32(s: string): DWORD; overload; // вычисляет хэш FNV32 для ASCII строки
function FNV64(a: TBytes): UInt64; overload; // вычисляет хэш FNV64 для массива байт
function FNV32(a: TBytes): DWORD; overload; // вычисляет хэш FNV32 для массива байт