Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
1

Нечастые крякозябры при чтении из бинарного файла

07.08.2012, 12:22. Показов 1097. Ответов 9
Метки нет (Все метки)

Вообщем читаю строки с бинарника и вылазит строки например
жирафа(верхнее)@
тигр(нижнеее)@
кролик
(здесь квадратик,забыл аски-код)волк
лиса


То-есть иногда нормально,иногда нет.
Заносил строки с помощью Delphi,насколько я знаю в 7 кодировка ANSI,по-этому считывал строки в шарпе с той же кодировкой.

Есть идеи почему так?

Добавлено через 1 час 11 минут
думаю ANSI шарпа и ANSI делфы(какой бы не был,ShortString или string) отличаются
ищу чем..

Добавлено через 40 минут
результата нету..
новык крякозябрики есть только "Ик&"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2012, 12:22
Ответы с готовыми решениями:

Крякозябры вместо русских буква при чтении из INI файла
При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются...

"Нарушение прав доступа при чтении по адресу" при чтении структур из бинарного файла
Пытаюсь разобраться со структурами в бинарных файлах. Допустим, есть массив структур. Записываю...

При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются крякозябры, когда с
При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются...

Вылет при чтении из бинарного файла
Уважаемые товарищи, пожалуйста, помогите понять почему приведённые ниже функции, записывающие или...

9
Почетный модератор
Эксперт .NET
8714 / 3666 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
07.08.2012, 12:44 2
Как читаете строки?
1
Эксперт Java
4088 / 3822 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
07.08.2012, 12:46 3
Цитата Сообщение от Noob.net Посмотреть сообщение
насколько я знаю в 7 кодировка ANSI
ANSI - это не одна кодировка, а целый набор.

По теме - гляньте в hex-редакторе, какие символы получаются в виде кракозябр.
1
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
07.08.2012, 18:08  [ТС] 4
Цитата Сообщение от SSTREGG Посмотреть сообщение
Как читаете строки?
через BinaryReader читаю байты,а потом преобразовываю в нужные строки.
Строка в делфи была strint[10],в шарпе сделал через маршалинг
ByValStr,CharSet.Ansi
Я вот искал на делфе,шаманил как описать что б подошла под маршалинг или наоборот не нашел.

Добавлено через 2 минуты
В делфи 10 символов - 11 байт
В шарпе в маршалинге ставлю Сайз - 11 байт
0
Master of Orion
Эксперт .NET
6094 / 4950 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
07.08.2012, 21:48 5
Как насчет юникода?
1
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
07.08.2012, 21:50  [ТС] 6
Не вариант,я понимаю что это выход.Если решения не найду,продолжу делать,что и делаю.Теряю неделю а то и 2 на не нужную работу.
0
Эксперт Java
4088 / 3822 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
08.08.2012, 07:41 7
Да покажите вы уже строку, которую неправильно читает, только обязательно в hex виде.
И код, которым вы читаете и проверяете в шарпе.

гадаем на кофейной гуще.
1
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
08.08.2012, 14:43  [ТС] 8
Hex-строки
0
Эксперт Java
4088 / 3822 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
08.08.2012, 14:44 9
Видно, что первый символ - длина строки. BinaryReader как раз и читает такие строки - метод ReadString.
1
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
08.08.2012, 14:53  [ТС] 10
Забыл самое главное
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
    public struct Animals
   {
       [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] private string _Name;
       public byte Age { get; set; }
 
       public string Name
       {
           get {
               return _Name;
            }
           set { _Name = value; }
       }
   }
Добавлено через 1 минуту
То-есть мне через это метод сделать,если я знаю длину строки в байтах?

Добавлено через 1 минуту
Что я пишу
это я с текста считывал(

Добавлено через 56 секунд
А последний символ наверное ограничитель?

Добавлено через 3 минуты
Я читал как последовательность байтов,а потом неявно через маршалинг крутил их в структуру..
Понял ошибку,нельзя же писать одним способом,а читать другим)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2012, 14:53
Помогаю со студенческими работами здесь

Ошибка при чтении бинарного файла
пытаюсь прочитать 63мб бинарного файла и заполнить структуру к примеру вот std::fstream...

Ошибка при чтении бинарного файла
почему у меня выводит два раза последнюю запись при чтении??(а файл записываю класс с 3...

Ошибка при чтении/записи из бинарного файла
Сделал простую программу для работы с бинарными файлами, но когда запускаю ее вылетает ошибка....

Добавляется 0 при чтении содержимого бинарного файла
100500 лет не делал, однако Sub PutContents() Dim fileInt As Integer: fileInt = FreeFile Dim i...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru