Автор Тема: Бинарник  (Прочитано 9697 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« : 31 Августа 2007, 06:26:23 »
Есть бинарник определенного формата . . . не подскажите как вообще вытягивать оттуда данные?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Бинарник
« Ответ #1 : 31 Августа 2007, 09:00:57 »
найти ниточку и осторожно тянуть.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #2 : 31 Августа 2007, 10:02:14 »
Оригинальный ответ  . . .

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Бинарник
« Ответ #3 : 31 Августа 2007, 10:44:15 »
на оригинальный вопрос

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
Бинарник
« Ответ #4 : 31 Августа 2007, 14:24:01 »
Если файл большой, читайте блоками и
perldoc unpack
если маленький, чтобы загрузить в память, то читайте в память и
perldoc unpack

можно читать конечно и побайтно, но производительность будет хромать.
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #5 : 03 Сентября 2007, 02:30:52 »
vladsu

Спасибо . . . буду копать

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #6 : 03 Сентября 2007, 09:05:55 »
Чёта перлдок пишет, что нету документации . . .

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
Бинарник
« Ответ #7 : 03 Сентября 2007, 13:15:32 »
а так
perldoc -f unpack
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #8 : 04 Сентября 2007, 02:34:01 »
Ага...так работает . . . там написано что нужно использовать unpack TEMPLATE,EXPR

я так понимаю EXPR - бинарные данные

а TEMPLATE - это типа формат данных в бинарнике? . . .


я просто пытаюсь декодировать бинарник от цифровой АТС SI2000 . . . файлы AMA

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #9 : 04 Сентября 2007, 02:39:08 »
Ещё . . . файл большой . . . читать нужно блоками . . . мне так сказали, но инфы почти никакой нигде нет . . . скудная информация, может подскажите что-нибудь?

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
Бинарник
« Ответ #10 : 04 Сентября 2007, 18:54:09 »
Цитировать
DartSidius:
я просто пытаюсь декодировать бинарник от цифровой АТС SI2000 . . . файлы AMA

Я почему-то так и подумал с самого начала.

Честно говоря даже и не знаю чем Вам помочь, если у Вас есть дока с описанием формата ленты, то вообще не вижу никаких проблем, если же доки нет, то будет очень трудно, если не сказать не возможно. Приходилось декодить EWSD12 по доке EWSD7, потом 2 года баги чистили.

Вообще рекомендую книгу, лучшая из всех что я видел в направлении обработки данных в Перл.
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #11 : 05 Сентября 2007, 02:15:21 »
Цитировать
vladsu:
Я почему-то так и подумал с самого начала.

Честно говоря даже и не знаю чем Вам помочь, если у Вас есть дока с описанием формата ленты, то вообще не вижу никаких проблем, если же доки нет, то будет очень трудно, если не сказать не возможно. Приходилось декодить EWSD12 по доке EWSD7, потом 2 года баги чистили.

Вообще рекомендую книгу, лучшая из всех что я видел в направлении обработки данных в Перл.


Описание ленты есть . . . просто я ничё понять не могу в этих 40 листах . . . вернее понимаю, но не пойму как привязаться к перлу это всё . . .

Книжку поищу, спасибо!

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #12 : 05 Сентября 2007, 03:30:37 »
Начал действовать вот так

open(FILE,"123.ama");
binmode FILE;

while() {
   open(F,">>1.txt");
   print F unpack("b*",$_)  . "\\n";
   close(F);
}

close(FILE);

в итоге получил файл с двоичным кодом . . . может можно теперь попробовать перегнать кода в нормальный вид?

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #13 : 05 Сентября 2007, 05:45:08 »
7.1. Записи о вызовах
Записи о вызовах состоят из фиксированной и переменной частей. Фиксированная часть записи
содержит информацию о типе записи (базовый вызов, FAIS, FAU,...) и ее назначении (тарификация,
PMOB, MOB, DEB,...), информацию о номере абонента, действия которого привели к созданию
записи. Переменная часть записи состоит из информационных элементов, которые выбираются в
зависимости от типа записи. Любая запись начинается с фиксированной части, за которой могут
следовать информационные элементы переменной части записи.
Положение
поля
Длина поля Часть записи
1 16+(от 2 до 19) Фиксированная часть для всех записей
17 m Переменная часть в зависимости от типа записи
Переменная часть может содержать следующие информационные элементы:
Информационный элемент Длина Тип записи
Вызов FAIS FAU
100 Вызываемый номер (Called number) от 4 до 22 X
101 Номер абонента, на которого передан вызов (Call
accepting party number)
от 5 до 23 X (a)
102 Дата и время начала вызова (Start date and time) 9 X X X
103 Дата и время завершения вызова (End date and time) 9 X X
104 Количество тарифных импульсов (Number of charging
units)
4 X X X
105 Базовая услуга (Basic service) 3 X X
106 Дополнительная услуга у инициатора вызова
(Supplementary service used by calling subscriber)
2 X (b) X
107 Дополнительная услуга у вызванного абонента
(Supplementary service used by called subscriber)
2 X (c)
108 Администрирование услуги абонентом (Subscriber’s
control input)
3 X
109 Последовательность введенных символов
(Dialed digits)
от 3 до 32 X
110 Исходящая категория (Origin category) 2 X X X
111 Тарифное направление (Tariff direction) 3 X X X
(*9*) 112 Причина безуспешного вызова (Failure cause) 2 X (d)
113 Идентификация входящей соединительной линии
(Incoming trunk data)
9 X (e)
114 Идентификация исходящей соединительной линии
(Outgoing trunk data)
9 X (e)
(*1*) 115 Длительность вызова или использования
дополнительной услуги (Call / service duration)
5 X X (f)
8 FUN559000-PCR-150
(*2*) 116 Контрольная сумма (Checksum) 4 X X X
(*3*) 117 Бизнес-группа и центрекс-группа (Business and
centrex group id)
6 X (g) X (g) X (g)
(*4*) 118 Код доступа сети (Carrier access code) от 3 до 7 X (h)
(*3*) 119 Оригинальный номер вызывающего абонента
(Original calling party number)
от 3 до 23 X (i)
(*5*) 120 Данные о пополнении предоплаченного счета
(Prepaid account recharge data)
15 X (j)
(*6*) 121 Причина разъединения вызова (Call release
cause)
5 X (k) X X
(*6*) 122 CBNO (Charge Band Number) 5 X (l)
(*7*) 123 Общий идентификатор вызова (Common Call Id) 6 X (m)
(*7*) 124 Время до ответа (Durations Before Answer) 10 X (n)
(*8a*) 125 VoIP–информация (VoIP Info) 5 X (o)
(*8a*) 126 Количество передаваемых данных Data
(Amount of transferred Data)
5 X (o)
(*8*) 127 IP–адреса (IP Addresses) 4 + 4n X (o)
(*10*) 128 VoIP–информация (VoIP Info) 13 X (o)
(*10*) 129 Количество передаваемых данных Data
(Amount of transferred Data)
25 X (k,
o)

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Бинарник
« Ответ #14 : 05 Сентября 2007, 05:45:57 »
8.2.1. Фиксированная часть записи
Поле Пози-
ция
Длина Наименование поля Формат
поля
1 1 1 Идентификатор типа записи (200) bin
2 2 2 Длина записи bin
3 4 4 Индекс записи bin
4 8 4 Идентификатор вызова bin
5 12 3 F8 F7 F6 F5 F4 F3 F2 F1 bin
F16 F15 F14 F13 F12 F11 F10 F9
Резерв F19 F18 F17
6 15 1 Последовательность Состояние учета
стоимости
bin
7 16 1 Длина кода зоны Длина списочного номера bin
8 17 n Код зоны и списочный номер абонента, действия
которого инициировали создание записи
BCD

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28