Способности:
Работает с данными из потока в виде структуры, которая задается в специальном легком формате (ниже).
Как задать структуру?
Очень просто: структура задается в виде списка точек, однако после имени точки следует имя типа этого поля. Например:
fisrtname=string
lastname=string
age=byte
Поддерживаются следующие типы:
- Real (вещественное число)
- Integer
- Word
- Byte
- Char
- String (первые 4 байта - размер строки, далее сама строка)
- ZString (строка, заканчивающаяся символом с кодом 0 ('\0'))
(!) Особенность: массив из char будет считан как обычная строка (фиксированной длины) и при записи тоже будет ожидаться строка (если она будет длиннее - все остальное не запишется).
Пример:
firstname=char[10]
lastname=char[10]
age=byte
mobilephone=byte[11]
Формат записи типа обновлен:
point_name=typename[_[s|u][le|be]][:length][[arr_length]]
s/u - знаковое ([s]igned) или беззнаковое ([u]nsigned)
le/be - little endian или big endian
:length - длина аргумента (префикса строки, длины целочисленного или вещественного числа. В байтах).
arr_length - длина массива элементов этого типа
Например:
a = integer_u:6 //целое, беззнаковое 6 байтовое
b = string:4[2] //массив из 2 строк с префиксом в 4 байта
c = word_be //слово с порядком байт Big Endian
d = integer_ule:5[2] //массив из 2 целых беззнаковых чисел с порядком байт Little Endian и длиной в 5 байт каждый
Скачать последнюю версию - filestructrw12.rar
P.S.: тестовая схема-пример прилагается.