[Ruby] Как разобрать двоичный файл?
Тим Алексеевский
realtim на mail.ru
Пт Янв 14 22:40:57 MSK 2005
Dmitry N Orlov (Янв 15, 0:13):
> Телефония.
> Имеем некий файлик с разговорами с коммутатора. Запись = 187 байт.
> Разнесены они по разным полям.
> Записей - может быть сколько угодня
> Требуется наваять парсер.
> Вопрос такий:
> 1. Как считывать по 187 байт
f=File.new("testfile")
s=r.read(187)
(после этого еще проверить, что s длиной 187, может быть меньше, "если
не хватает")
> 2. Как из затолкать в некую структуру, что сразу поля получились?
> Типа первые 4 туда, вторые 4 - сюда, потом 8 еще воооон туда
может unpack?
Например:
a=s.unpack("llq")
(получится массив, его можно в hash распихать если нужно)
t=["first-4", "second-4", "third-8"]
h={}
a.each_with_index{|v,i| h[t[i]]=v}
(теперь первое поле например будет доступно как h["first-4"])
Тим
--
++ Lead me not into temptation, I can find it myself. ++
--
Подробная информация о списке рассылки Ruby