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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FileStream: запись массива байт вызывает ошибку 
V
    Опции темы
eiffil
Дата 18.9.2009, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите, плиз. Собственно, вот упрощенный кусок кода, который отказывается работать:
Код

            // создаем выходной поток байт
            using (FileStream fs = new FileStream(Program.appFolder + @"\qwerty.pcl", FileMode.Create))
            {
                byte[] bytearray; // массив для хранения команды
                int offset = 0; // смещение отн-но начала файла

                // Universal Exit Language
                bytearray = new byte[9];
                bytearray[0] = 27; // Ec
                bytearray[1] = 37; // %
                bytearray[2] = 45; // -
                bytearray[3] = 49; // 1
                bytearray[4] = 50; // 2
                bytearray[5] = 51; // 3
                bytearray[6] = 52; // 4
                bytearray[7] = 53; // 5
                bytearray[8] = 88; // X
                fs.Write(bytearray, offset, bytearray.Length);
                offset += bytearray.Length;
                
                // Printer Reset
                bytearray = new byte[2];
                bytearray[0] = 27; // Ec
                bytearray[1] = 69; // E
                fs.Write(bytearray, offset, bytearray.Length);
                offset += bytearray.Length;

                // ЕЩЕ НЕСКОЛЬКО МАССИВОВ byte[] записывается в выходной файл
                // ...
                
                fs.Flush();
                fs.Close();
            }


Код вываливает ошибку после второго оператора fs.Write(bytearray, offset, bytearray.Length);

Думаю, что может быть связано что-то с асихронным/синхронным режимом. Но установка этого флага в конструкторе FileStream не исправила ситуации.
Как устранить??? 
PM MAIL   Вверх
eiffil
Дата 18.9.2009, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сам разобрался: Параметр offset в fs.Write зря заполнял. Для последовательной записи надо ему присваивать 0.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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