The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Вышел язык спецификации бинарных форматов Kaitai Struct 0.5, opennews (ok), 10-Ноя-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


46. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Max (??), 12-Ноя-16, 16:44 
А как можно начать считывание типов со смещением от конца потока?
Ответить | Правка | Наверх | Cообщить модератору

47. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от GreyCat (ok), 12-Ноя-16, 16:45 
> А как можно начать считывание типов со смещением от конца потока?

   instances:
     foo:
       pos: _io.size - смещение_от_конца

Ответить | Правка | Наверх | Cообщить модератору

48. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Max (??), 12-Ноя-16, 17:05 
Как ни странно, но именно это я и попробовал сделать в первую очередь...
Не работает оно(
Ответить | Правка | Наверх | Cообщить модератору

49. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от GreyCat (ok), 12-Ноя-16, 17:07 
> Как ни странно, но именно это я и попробовал сделать в первую
> очередь...
> Не работает оно(

Можно чуть более развернуто - что именно не работает? Не компилируется ksc, не компилируется целевым языком, компилируется, но зачитывает не то, что ожидалось?

Ответить | Правка | Наверх | Cообщить модератору

50. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 12-Ноя-16, 17:23 
А теперь до меня дошло, что в ksv не подсвечиваются секции указанные в instances...
Печально. Я думал, что оно тоже должно подсвечиваться.
Ответить | Правка | Наверх | Cообщить модератору

51. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от GreyCat (ok), 12-Ноя-16, 17:24 
> А теперь до меня дошло, что в ksv не подсвечиваются секции указанные
> в instances...
> Печально. Я думал, что оно тоже должно подсвечиваться.

Вообще должно. Сейчас проверю. Можно какой-нибудь пример?

Ответить | Правка | Наверх | Cообщить модератору

52. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 12-Ноя-16, 17:26 
meta:
  id: test
  endian: le
seq:
  - id: header
    type: u4
instances:
  offset:
    pos: _io.size - 6
    type: u2
Ответить | Правка | Наверх | Cообщить модератору

53. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +2 +/
Сообщение от GreyCat (ok), 12-Ноя-16, 17:34 
Да, факт, так не определяется. Вообще, в реальной жизни это практически не заметить, т.к. почти всегда у instance в type идет какая-то подструктура, внутри которой все как раз подсвечиваться будет.

Спасибо за багрепорт, сейчас попробую подумать, как исправить.

Ответить | Правка | Наверх | Cообщить модератору

59. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 15-Ноя-16, 21:58 
Спасибо за исправление.
Теперь все работает как надо.
Еще я хотел узнать, а можно ли как-то получить значение итератора repeat-expr внутри цикла?
Ответить | Правка | Наверх | Cообщить модератору

60. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от GreyCat (ok), 15-Ноя-16, 22:00 
> Спасибо за исправление.
> Теперь все работает как надо.

Эм, я вроде бы пока ничего не исправлял ;)

> Еще я хотел узнать, а можно ли как-то получить значение итератора repeat-expr
> внутри цикла?

А в каком выражении его хочется получать?

Ответить | Правка | Наверх | Cообщить модератору

61. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 15-Ноя-16, 22:07 
> Эм, я вроде бы пока ничего не исправлял ;)

Как так? Я обновил ksv до версии 0.5 и проблема исчезла

> А в каком выражении его хочется получать?

instances:
  test:
    pos: rows[{вот здесь хочется получить}].section_start
    size: rows[{ну и здесь}].section_size
    repeat: expr
    repeat-expr: rows_count

Ответить | Правка | Наверх | Cообщить модератору

62. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от GreyCat (ok), 15-Ноя-16, 22:13 
>> Эм, я вроде бы пока ничего не исправлял ;)
> Как так? Я обновил ksv до версии 0.5 и проблема исчезла

0.5 выпустилась в более-менее штатном режиме по итогам последних нескольких месяцев. Проблему с отображением instances я там до сих пор наблюдаю.

>> А в каком выражении его хочется получать?
> instances:
>   test:
>     pos: rows[{вот здесь хочется получить}].section_start
>     size: rows[{ну и здесь}].section_size
>     repeat: expr
>     repeat-expr: rows_count

Это не так делается. Think OOP. Если есть rows, у которых есть section_start и section_size, то логично у них же завести

    instances:
      body:
        pos: section_start
        size: section_size

и обращаться к их содержимому, как к row[42].body.

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

63. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 15-Ноя-16, 22:20 
> 0.5 выпустилась в более-менее штатном режиме по итогам последних нескольких месяцев. Проблему
> с отображением instances я там до сих пор наблюдаю.

А вот я уже не наблюдаю.

> Это не так делается.

Зато значительно компактнее.

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

64. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от GreyCat (ok), 15-Ноя-16, 22:21 
>> Это не так делается.
> Зато значительно компактнее.

Какой из вариантов компактнее?

Ответить | Правка | К родителю #63 | Наверх | Cообщить модератору

65. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 15-Ноя-16, 22:23 
> Какой из вариантов компактнее?

Тут дело в другом. Какой из вариантов рабочий...
Я не совсем понял, как заставить ваш вариант итерировать таблицу...

Ответить | Правка | К родителю #64 | Наверх | Cообщить модератору

66. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +1 +/
Сообщение от GreyCat (ok), 15-Ноя-16, 22:27 
>> Какой из вариантов компактнее?
> Тут дело в другом. Какой из вариантов рабочий...
> Я не совсем понял, как заставить ваш вариант итерировать таблицу...

Вам что нужно получить-то в итоге?

У вас есть что-то типа:

types:
  main:
    seq:
      - id: rows_count
        type: u4
      - id: rows
        type: row
        repeat: expr
        repeat-expr: rows_count
  row:
    seq:
      - id: section_start
        type: u4
      - id: section_size
        type: u4

Вы уже можете обращаться к main.rows[42].section_start и main.rows[42].section_size. Теперь вы хотите к main дописать что-то, чтобы иметь возможность обращаться к телу секции как-то типа main.test[42]. А я предлагаю дописать не к main, а к row - что логичнее, т.к. объект row как раз посвящен одной конкретной секции. И обращаться к телу секции, как main.rows[42].body.

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

67. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 15-Ноя-16, 22:33 
> Вы уже можете обращаться к main.rows[42].section_start и main.rows[42].section_size.
> Теперь вы хотите к main дописать что-то, чтобы иметь возможность обращаться
> к телу секции как-то типа main.test[42]. А я предлагаю дописать не
> к main, а к row - что логичнее, т.к. объект row
> как раз посвящен одной конкретной секции. И обращаться к телу секции,
> как main.rows[42].body.

Да. Именно то, что мне нужно.
Просто не привык я к таком OOP)
Спасибо.

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

68. "Вышел язык спецификации бинарных форматов Kaitai Struct 0.5"  +/
Сообщение от Maxim (??), 15-Ноя-16, 22:57 
> И обращаться к телу секции, как main.rows[42].body.

Кстати, в данном случае надо сбросить подсветку родительской секции. В данном случае она отображается неверно.

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру