Получить только строки из двоичного файла - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь напечатать на экране строку из двоичного файла, используя метки xaml, но когда я отображаю содержимое файла, я получаю красивый «поврежденный» символ вместо всего содержимого файла.

Я думаю, чтопроблема заключается в чтении файла, я уже могу изменить содержимое метки, используя самую базовую технику, которая до сегодняшнего дня работала довольно хорошо ...

label.Text = mystring ;

Дело в том: у меня есть данные в моих двоичных файлах, которые инсттекст (некоторые случайные данные, которые меня не волнуют), расположенный в начале файла, моя теория заключается в том, что моя программа начинает чтение, читает не ascii-символ и прекращает чтение ... Я читаю с использованием класса File, возможно, это не то, что нужно.....

label.Text = File.ReadAllText(my_file); 

Итак, я сейчас в замке. Я точно не знаю, что я должен делать ....

Надеюсь, вы мне поможете: D

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Вам нужно знать, как структурирован ваш двоичный файл. Вам нужно знать кодировку строк. Обычный текстовый файл обычно имеет маркеры в начале двух или около того байтов, которые идентифицируют его кодировку, если это Unicode. Таким образом, система может узнать, есть ли у нее UTF-8, UTF-16, ... Если вы попытаетесь прочитать двоичный файл, этой информации там нет. Вместо этого процесс чтения, скорее всего, найдет неожиданные двоичные данные. Таким образом, вы не можете прочитать двоичный файл как текст. Если ваш файл структурирован так, что вначале это двоичные данные, а затем только текст, просто пропустите первую часть и начните чтение с начала второй части. Но я не думаю, что это так просто:

  • , если это действительно двоичные данные, есть вероятность, что файловая структура намного сложнее, и вам нужно проделать больше работы, чтобы ее прочитать.
  • если только первые два байта являются двоичными данными, то, возможно, это текстовый файл, и вы можете читать его без проблем, вам, возможно, нужно только передать правильную кодировку в функцию чтения
0 голосов
/ 11 ноября 2019

Я не могу сказать много, не глядя на текст, но, похоже, вам нужно добавить кодировку

Примерно так:

string myText = File.ReadAllText(path, Encoding.Default);
...