Re[2]: perl pack/unpack
От: Knuckles Россия  
Дата: 10.10.06 09:45
Оценка:
Спасибо за подсказку. Уже разобрался что к чему примерно. Файл в итоге прочитал. Для этого достаточно было объявить такую структуру:
type
  dStatRec = packed record
  src_d:Byte;
  src_c:Byte;
  src_b:Byte;
  src_a:Byte;
  dst_d:Byte;
  dst_c:Byte;
  dst_b:Byte;
  dst_a:Byte;
  packets:LongWord;
  bytes:LongWord;
  src_port:Word;
  dst_port:Word;
  t_class:Word;
  datetime:LongWord;
  end;

...и читать как файл типа dStatRec. Теперь видимо можно оптимизировать это в свете использования функции inet_ntoa(). Просто я сперва думал, что перл своими функциями как-то сжимает данные, оказалось — нет. Осталась только одна небольшая проблемка. Не смог без шаманства раскодировать дату (последнее поле). Delphi функция UnixToDateTime возвращает результат больше на месяц без 6 часов, чем это делает перловский скрипт. GetLocalTime и другие не помогли. Теперь я просто перед вызовом этой функции отнимаю от прочитанного datetime магическое число. Только не совсем уверен, будет ли это всегда правильно работать.
Самурай без меча подобен самураю с мечом, но только без меча...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.