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

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте
У меня следующая ситуация:
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2013, 11:36
Ответы с готовыми решениями:

Чтение бинарного файла
проблема с чтением бинарного файла. если сделать так: byte buf_data = new byte; file.Read(buf_data, 0, 10); то в таком случае...

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

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

4
 Аватар для igorich
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 3
24.01.2013, 13:18
если проблема в чтении (а она в чтении, т.к. в файле всё есть), то надо копать что не так с FileReadString().
как я понял это ваша внутреняя функа, ну и это в другой раздел вопрос, по Сям
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
24.01.2013, 15:24
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  [ТС]
SSTREGG, с тобой можно связаться по ICQ/Skype?
0
24.01.2013, 23:42

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2013, 23:42
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru