'N': lambda x: (x + 2) // 2, 'NC': lambda x: x * 2, 'NVC': lambda x: x * 2 + 2, 'RV': lambda x: 16, 'NT': lambda x: 8, 'I': lambda x: 8, 'DT': lambda x: 7, } """ Функции преобразования значений из двоичных, f - параметры типа, x - дв. данные значения """ types_fun = { 'GUID': lambda f, x: Guid(x), 'B': lambda f, x: utils.b2s(x), 'L': lambda f, x: x[0] == 1, 'N': lambda f, x: utils.bytes_to_int(f, x), 'NC': lambda f, x: x.decode('utf-16'), 'NVC': lambda f, x: x[2:2 + 2 * utils.read_struct(x[:2], 'h')[0]].decode('utf-16'), 'RV': lambda f, x: utils.read_struct(x, '4I'), 'NT': lambda f, x: utils.read_struct(x, '2I'), 'I': lambda f, x: utils.read_struct(x, '2I'), 'DT': lambda f, x: utils.b2s(x) if x[4:6] == b'\x00\x00' else datetime.strptime(utils.b2s(x), '%Y%m%d%H%M%S') } class FieldDesc: """ Описание поля таблицы """
'N': lambda x: (x + 2) // 2, 'NC': lambda x: x * 2, 'NVC': lambda x: x * 2 + 2, 'RV': lambda x: 16, 'NT': lambda x: 8, 'I': lambda x: 8, 'DT': lambda x: 7, } """ Функции преобразования значений из двоичных, f - параметры типа, x - дв. данные значения """ types_fun = { 'GUID': lambda f, x: Guid(x), 'B': lambda f, x: utils.b2s(x), 'L': lambda f, x: x[0] == 1, 'N': lambda f, x: utils.bytes_to_int(f, x), 'NC': lambda f, x: x.decode('utf-16'), 'NVC': lambda f, x: x[2:2 + 2 * utils.read_struct(x[:2], 'h')[0]].decode('utf-16'), 'RV': lambda f, x: utils.read_struct(x, '4I'), 'NT': lambda f, x: utils.read_struct(x, '2I'), 'I': lambda f, x: utils.read_struct(x, '2I'), 'DT': lambda f, x: utils.bytes_to_datetime(f, x) } class FieldDesc: """ Описание поля таблицы """
'N': lambda x: (x + 2) // 2, 'NC': lambda x: x * 2, 'NVC': lambda x: x * 2 + 2, 'RV': lambda x: 16, 'NT': lambda x: 8, 'I': lambda x: 8, 'DT': lambda x: 7, } """ Функции преобразования значений из двоичных, f - параметры типа, x - дв. данные значения """ types_fun = { 'GUID': lambda f, x: Guid(x), 'B': lambda f, x: utils.b2s(x), 'L': lambda f, x: x[0] == 1, 'N': lambda f, x: utils.bytes_to_int(f, x), 'NC': lambda f, x: x.decode('utf-16'), 'NVC': lambda f, x: x[2:2 + 2 * utils.read_struct(x[:2], 'h')[0]].decode('utf-16' ), 'RV': lambda f, x: utils.read_struct(x, '4I'), 'NT': lambda f, x: utils.read_struct(x, '2I'), 'I': lambda f, x: utils.read_struct(x, '2I'),
def __str__(self): return utils.bytes_to_guid(self.data) if utils.BYTES16_AS_GUID else utils.b2s(self.data)