Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > FileStream: запись массива байт вызывает ошибку


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

            // создаем выходной поток байт
            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 не исправила ситуации.
Как устранить??? 

Автор: eiffil 18.9.2009, 08:32
Сам разобрался: Параметр offset в fs.Write зря заполнял. Для последовательной записи надо ему присваивать 0.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)