Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2010, 19:40   #1
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию FileStream Read и массив байтов

Подскажите:
Код:
fs = new FileStream(openFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
            
            byte[] byt=new byte[4];
            fs.Read(byt,16,byt.Length-1);
            int a=BitConverter.ToInt32(byt,0);
            MessageBox.Show(a.ToString());
Компилятор ругается что в
Код:
fs.Read(byt,16,byt.Length-1);
переполнение массива byt,хотя как это возможно если count=размер-1
0_о
bondik вне форума Ответить с цитированием
Старый 06.10.2010, 21:08   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

А offset равный 16 байт, вас не смущает?
BOBAH13 вне форума Ответить с цитированием
Старый 06.10.2010, 21:48   #3
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

понял,я думал офсет это смещение он начала файла,как Seek,а зачем тогда каунт?
bondik вне форума Ответить с цитированием
Старый 06.10.2010, 21:53   #4
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

все понял,это смещение в массива в который пишем.
bondik вне форума Ответить с цитированием
Старый 06.10.2010, 22:02   #5
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Исходя из логики кода то так
Код:
byte[] byt=new byte[4];
            fs.Read(byt,0,byt.Length);
BOBAH13 вне форума Ответить с цитированием
Старый 06.10.2010, 22:36   #6
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Да именно так,спасибо большое
Код:
fs.Seek(18, SeekOrigin.Begin);
                byte[] byt = new byte[4];
                fs.Read(byt, 0, 4);
                width = BitConverter.ToInt32(byt, 0);
bondik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с FileStream Gauss Общие вопросы .NET 10 13.09.2010 17:16
assembler массив байтов AlexandrHouse Помощь студентам 5 01.02.2010 19:03
удаление байтов varelik Общие вопросы Delphi 15 09.12.2009 11:27
FileStream. Как узнать сколько байтов в Read и Write надо написать? Манжосов Денис :) Помощь студентам 2 24.10.2008 08:29
FileStream ryton Общие вопросы Delphi 9 26.05.2008 13:53