Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2012, 07:39   #1
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию protobuf C++/C#

как в один поток FileStream, например на стороне C#, записать несколько разных сообщений и потом их распарсить на стороне C++?
я сделал так:
пишу idшник сообщения, потом пишу это сообщение, потом опять id другого сообщения и само сообщение. и так далее. методом .WriteTo.

на стороне C++ читаю id, выбираю тип сообщения по id, читаю в подходящее сообщение. методом .ParseFromIstream. Но читается из потока верно только первое сообщение. остальные забиваются нулями.
может кучки сообщений нужно читать/писать каким-то "правильным" способом?
Kukurudza вне форума Ответить с цитированием
Старый 22.08.2012, 08:53   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Начните с того, что прогоните алгоритм "вручную" и определите, каков должен быть поток байт. Потом посмотрите файл - все ли в нем правильно. Потом посмотрите получающую половину - правильно ли читает.
waleri вне форума Ответить с цитированием
Старый 22.08.2012, 09:03   #3
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

прогнал. вопрос решил так:
зная размер (в байтах, пусть n) сообщения id, читаю из буфера в дополнительный буфер n байт, из буфера парсю (какое слово ) id. потом то же самое с сообщением
Kukurudza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с protobuf C# Kukurudza C# (си шарп) 5 16.08.2012 12:22
Как скомпилировать/пользоваться библиотекой protobuf Kukurudza Общие вопросы C/C++ 4 16.08.2012 10:35