#c# #visual-studio #type-conversion #protocol-buffers #binaryfiles
#c# #visual-studio #преобразование типов #протокол-буферы #двоичные файлы
Вопрос:
Я пытаюсь взять текстовый файл, который содержит некоторый двоичный файл. Например.
amp;
ns16A086C66661C9 D% C(0 ¢À
amp;
ns167C0BC683548A €D% €‹C(0 ¢À
amp;
ns16BC3BAF56248CÍ=D%¤pìC(0 ¢À
amp;
ns16A89FBA902317q%¤D%"÷C(0 ¢À
amp;
ns16EC1F720BB5983ó1C%×C(0ž¢À
amp;
ns1690E7C450794F ÀD% €ŠC(0 ¢À
amp;
ns16A408EAB24E2Fš©ED%…‹éC(0 ¢À
amp;
ns16F832E429A2C4 @{D% €ÍC(0 ¢À
amp;
ns160CD74622F0D3
—yD%ÍløC(0 ¢À
amp;
ns16485A3F0BA1D7öˆyD%… ¹C(0ž¢À
amp;
ns16EC35866601D4 @HD% ÀD(0 ¢À
amp;
ns1660F189ED2318 «D% èB(0 ¢À
amp;
ns16
чтобы преобразовать его в строку. Однако я не знаю, как подойти к этому с помощью Google.Библиотека Protobuf.
Это то, что у меня есть сейчас, я, похоже, не могу понять, как проанализировать данные, прочитанные из .txt, и отправить их через Google.Декодер Protobuf??? и получить правильную строку.
namespace ConsoleApplicationTest
{
class Program
{
static void Main(string[] args)
{
byte[] array = File.ReadAllBytes("C:/brokerdata.txt");
Google.Protobuf.IMessage<string> a = new IMessage<string>();
Google.Protobuf.MessageParser<a> bb = new MessageParser<a>(() => "");
bb.ParseFrom(array);
string s = System.Text.Encoding.UTF8.GetString(array, 0, array.Length);
Console.Out.WriteLine(s);
Console.WriteLine("First byte: {0}", array[0]);
Console.WriteLine("Last byte: {0}", array[array.Length - 1]);
Console.WriteLine(array.Length);
//Console.Out.WriteLine(array);
Console.ReadKey();
}
}
}
Комментарии:
1. «Текстовый файл, который находится в двоичном формате» не имеет смысла — это текстовый файл или двоичный? Похоже, что это действительно просто двоичные данные. Что такое
a
иb
здесь? (Вам не нужно создавать свой собственныйMessageParser
экземпляр.) Неясно, как данные в файле связаны с буферами протокола…2. @JonSkeet Да, я приношу извинения (отредактирую это), это двоичный файл. A amp; B — это просто заполнители. Я не знал, что для этого мне не нужно было создавать свой собственный MessageParser. Как мне это сделать? Не могли бы вы, возможно, направить меня? Спасибо!
3. Хорошо, у вас есть файл .proto? Где объявлены ваши сообщения? Все еще действительно неясно, что на самом деле должно быть в этом файле или какое это имеет отношение к буферам протокола…
4. @JonSkeet Я спрошу своих коллег и свяжусь с вами! Спасибо за ваш ответ! 🙂