Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 24.01.2013
Сообщений: 26
1

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

24.01.2013, 11:36. Показов 1358. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте
У меня следующая ситуация:
1) Создаю бинарный файл

C#
1
2
3
4
5
6
7
8
9
10
11
12
                using (FileStream stream = new FileStream("E:\\Terminal\\history\\Alpari-Demo\\"+c_symbol+i_period+".hst", FileMode.Create)){
                  //Log("FileStream: "+stream, NinjaTrader.Cbi.LogLevel.Information);                   
                  using (BinaryWriter writer = new BinaryWriter(stream))
                    {
                      //---- Write history file header  
                      c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
                                      writer.Write(Convert.ToUInt32(400)); 
                      writer.Write(c_copyright);
                     
                      writer.Close();
                    }
                }
2) В другой программе пытаюсь считать файл (думаю код понятен):

C
1
2
3
4
      int iHandle=FileOpenHistory("03-1315.hst", FILE_BIN|FILE_READ);
      int version         =FileReadInteger(iHandle, LONG_VALUE);
      string c_copyright     =FileReadString(iHandle,  64;
      Alert(version+" "+c_copyright);
Для моего файла читает только version, а c_copyright не видит: (картинка в аттаче)

Для другого же аналогичного файла все читается правильно - почему?

Примеры моего и другого аналогичного файлов в аттаче
Миниатюры
Некорректное чтение из бинарного файла  
Вложения
Тип файла: rar files.rar (33.9 Кб, 4 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2013, 11:36
Ответы с готовыми решениями:

Чтение бинарного файла
проблема с чтением бинарного файла. если сделать так: byte buf_data = new byte;...

Чтение бинарного файла
Добрый день, подскажите как реализовать код. Имеется структура бинарного файла (не моего) нужно его...

Чтение из бинарного файла в структуру
Совсем недавно начал изучать C# и .NET до этого программировал на C++. Хотел узнать можно ли через...

Чтение структуры из бинарного файла
Всем добрый день, столкнулся с проблемой чтения структур из бинарного файла, много чего нового...

4
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 3
24.01.2013, 13:18 2
если проблема в чтении (а она в чтении, т.к. в файле всё есть), то надо копать что не так с FileReadString().
как я понял это ваша внутреняя функа, ну и это в другой раздел вопрос, по Сям
0
Почетный модератор
Эксперт .NET
8721 / 3673 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
24.01.2013, 15:24 3
BinaryWriter при записи строки сначала записывает её длину, а потом саму строку (чтобы без проблем прочитать BinaryReader'ом), поэтому при чтении в другой программе (функция чтения в которой судя по коду читает строку, длина которой максимум 64 символа) функция FileReadString отрабатывает не как ожидается, т.к. первым символом получается 'не отображаемый' (один или несколько байт - длина строки).

Выход:
1. Писать в C# либо массив символов (char[]) либо массив байт (byte[]) которые представляют нужную строку.
2. Написать свою FileReadString которая работает как BinaryReader.ReadString (можно в декомпиляторе посмотреть).
1
1 / 1 / 0
Регистрация: 24.01.2013
Сообщений: 26
24.01.2013, 23:39  [ТС] 4
SSTREGG, с тобой можно связаться по ICQ/Skype?
0
NickoTin
24.01.2013, 23:42     Некорректное чтение из бинарного файла
  #5

Не по теме:

Programmer1973, нет. Есть вопросы - задавайте их здесь, на форуме.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2013, 23:42

Чтение и запись бинарного файла
Помогите объяснить и переделать не большую программу с VB6 , на C#. А то перечитал много книг , но...

Чтение бинарного файла по заголовкам
Здравствуйте. Файл начинается так 00 00 00 00 FF FF 95 05 34 E8 02 00 CD 67 5A 41 первые 4 байта...

Чтение матрицы из бинарного файла
Здравствуйте. Необходимо считать матрицу с бинарного файла (расширение .dat ) где первые два...

Чтение структурированной информации из бинарного файла
Как правильно написать на C# код для считывания информации из следующего файла? Header Block...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru