Показать сообщение отдельно
Старый 03.09.2005, 19:16   #11
alcosholik
 
Сообщений: n/a
WriteByte (указатель_на_файл/поток, мой_байт)

Параметры
указатель_на_файл/поток = переменная, определенная командой OpenFile, ReadFile или OpenTCPStream (версия 1.52 и выше)
мой_байт = может быть целым или дробным числом, но правильно сохранены будут только значения от 0 до 255

Описание
Как только вы открыли файл на диске (или поток) для записи, используйте эту команду, чтобы записать один байт в файл/поток за раз. Заметьте, что байт – это целое число, которое может приминать значения в диапазоне от 0 до 255 и использует 8 бит для хранения. Поскольку символы сохраняются как байтовые значения, эта функция может быть использована для записи в файл одного символа за раз.

Дополнительные замечания
Значение, сохраненное командой WriteByte, является «младшим» байтом integer-числа. Т.е. отрицательные числа и числа больше, чем 255 все равно будут иметь значения в пределах 0 и 255. Это может показаться вам странным, если вы не совсем понимаете принцип хранения 32-битных integer-чисел, но это НЕ глюк.

Потоками можно пользоваться только в версии Blitz Basic 1.52 или выше.

Пример
; Чтение и запись в файл, используя функции ReadByte и WriteByte

; Инициализировать несколько переменных для примера 
Byte1% = 10; хранить 10 
Byte2% = 100; хранить 100 
Byte3% = 255; хранить 255 (максимальное значение, которое может хранить байт) 
Byte4% = 256; попробуйте сохранить 256, вы получите 0 (256 – 256 = 0)
Byte5% = 257; попробуйте сохранить 257, вы получите 1 (257 - 256 = 1) 
Byte6% = -1; попробуйте сохранить –1, вы получите 255 (256 – 1 = 255)
Byte7% = -2; попробуйте сохранить 256, вы получите 254 (256 – 2 = 254)
Byte8% = Asc("A"); хранить ASCII код символа “A” (65 )
;(английская и русская «А» имеют разные коды – прим. перев.) 

; Открыть файл для записи 
fileout = WriteFile("mydata.dat ") 

; Записать информацию в файл 
WriteByte( fileout, Byte1 ) 
WriteByte( fileout, Byte2 ) 
WriteByte( fileout, Byte3 ) 
WriteByte( fileout, Byte4 ) 
WriteByte( fileout, Byte5 ) 
WriteByte( fileout, Byte6 ) 
WriteByte( fileout, Byte7 ) 
WriteByte( fileout, Byte8 ) 

; Закрыть файл 
CloseFile( fileout ) 

; Открыть файл для чтения 
filein = ReadFile("mydata.dat") 

Read1 = ReadByte( filein ) 
Read2 = ReadByte( filein ) 
Read3 = ReadByte( filein ) 
Read4 = ReadByte( filein ) 
Read5 = ReadByte( filein ) 
Read6 = ReadByte( filein ) 
Read7 = ReadByte( filein ) 
Read8 = ReadByte( filein ) 

; Закрыть файл после завершения чтения 
CloseFile( filein ) 

Print "Записано - считано" 
Write Byte1 + " - " : Print Read1 
Write Byte2 + " - " : Print Read2 
Write Byte3 + " - " : Print Read3 
Write Byte4 + " - " : Print Read4 
Write Byte5 + " - " : Print Read5 
Write Byte6 + " - " : Print Read6 
Write Byte7 + " - " : Print Read7 
Write Byte8 + " - " : Print Chr$( Read8 ) 

WaitKey()
 
Ответить с цитированием