parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Cредство скриптования сайтов или язык программирования? Рассуждения на тему бинарных форматов.

StopDesign 06.12.2008 19:43

Мне нужно иногда передавать данные между Парсером и чем-то еще. На самом деле приходилось отдавать данные в Perl, php и flash. Ещё принимать данные из C++, Perl и flash. Не скажу, что это часто нужно... Но гораздо чаще, чем отправлять почту из Парсера, создавать в нем изображение или банить кого-то по ip.

Сейчас весь такой обмен приходится строить на XML. Зачем - непонятно. Мы передаем данные одной программы другой программе. В этой задаче все достоинства XML превращаются в недостатки.

Для обмена с JS еще как-то подходит JSON. Для других целей нужен бинарный формат, например, protobuf.

Ну я полез на code.google.com, почитал список языков, которые уже сейчас поддерживают работу с protobuf, порадовался и стал пробовать сделать реализацию для Парсера.

Оказалось, что Парсер не умеет работать с бинарными данными. Можно открыть файл, но невозможно работать с его содержимым. Потому что string не может содержать некоторые символы. Теоретически...

Полез в исходники, убрал одну проверку... В итоге удалось получить строку, содержащую любой набор символов. Но сохранить её нельзя. Мешает символ ^#00, на котором строка "заканчивается". Похоже, без создания нового системного класса тут не обойтись.

Вопрос: нужна ли вам, разработчикам, возможность работы с бинарными данными? Как вы сейчас обходите эту проблему?