Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BinaryReader 
:(
    Опции темы
Mormishka
Дата 20.2.2011, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 25.8.2010

Репутация: нет
Всего: нет



Записываю на С++ бинарный файл, потом считываю на C#. Не надо с BinaryReader что-то делать? Очищать буфер или еще там чего?
После некоторого момена считывания начинает читать другие числа. Файл бинарный около 1 МБ.
PM MAIL   Вверх
-Mikle-
Дата 20.2.2011, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Мало инфы

Добавлено через 17 секунд
Еще давай


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Mormishka
Дата 20.2.2011, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 25.8.2010

Репутация: нет
Всего: нет



Запись в С++. Пробовал обратно считывать в C++, все нормально.
Код


FILE* f=fopen(FileName, "w");
if (f==NULL)
{
    printf("Cannot open output file.\n");
};
double temp;
int NumberOfTimeSteps;
NumberOfTimeSteps=vector2D[0][0].Cpo->points_.size();
for (int time_step=0;time_step<NumberOfTimeSteps;++time_step)
{
    for (int i=0;i<nx;++i) {
for (int j=0;j<ny;++j)
    {
    temp=vector2D[i][j].Cpr->At(time_step).y;
    fwite_count=fwrite(&(temp),sizeof(double),1,f);
    };
    };
}


int IntEnd=5000;
fwrite(&IntEnd,sizeof(int),1,f);

fclose(f);


Считывает все значения в C# до конца. Специально сделал метку IntEnd=5000.
Но после некоторого значения значения пошли огромные, не такие которые надо. Такое ощущение, что он перескочил через биты.

Код

        private double[,,] ReadCub()
        {
            double[,,] CubType = new double[nx, ny, NumberOfTimeSteps];
            long PositionBinaryReader;
            for (int t = 0; t < NumberOfTimeSteps; t++)
            {
                if (t==23)
                {
                    
                }
                for (int i = 0; i < nx; i++)
                {
                    for (int j = 0; j < ny; j++)
                    {
                        CubType[i, j, t] = MyBinaryReader.ReadDouble();
                        PositionBinaryReader = MyBinaryReader.BaseStream.Position;
                    }
                }
            }
            return CubType;
        }

PM MAIL   Вверх
VirusUZ
  Дата 28.2.2011, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

Репутация: -1
Всего: -2



using System.IO;
...../la-la-la
byte[] b= File.ReadAllBytes();
--------------------
Virus
PM MAIL   Вверх
Mormishka
Дата 28.2.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 25.8.2010

Репутация: нет
Всего: нет



т.е. у шарпа какая-то своя форма считывания записи типов double?
PM MAIL   Вверх
Timur17
Дата 20.6.2011, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.6.2011

Репутация: нет
Всего: нет



У меня была точно такая же проблема! Долго не мог понять в чем дело.

Оказывается, нужно открыть файл для записи в режиме "wb" (write binary) 

 FILE* f=fopen(FileName, "wb");
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.