69705

Читання і запис в бінарному режимі

Лекция

Информатика, кибернетика и программирование

Для кожного відкритого файлу система зберігає величину яка називається покажчиком поточної позиції файлу. При відкритті файлу цей покажчик встановлюється на початок файлу. З кожним викликом функції читання файлу покажчик поточної позиції зрушується...

Украинкский

2014-10-09

53.5 KB

0 чел.

Тема 25: Читання і запис в бінарному режимі

Ми вже уміємо відкривати файли. Тепер поговоримо про їх обробку, тобто читанні і записі. На мал. 11.1 і 11.2 показано, як відбувається читання і запис бінарних файлів.

Для кожного відкритого файлу система зберігає величину, яка називається покажчиком поточної позиції файлу. При відкритті файлу цей покажчик встановлюється на початок файлу. З кожним викликом функції читання файлу покажчик поточної позиції зрушується на певну кількість байтів (див. мал. 11.1).

Line1\nLine2\Line3<- Line1\nLine2\Line3<- Line1\nLine2\Line3<-

Л Л Л

після відкриття читаємо 7 байтів досягнутий кінець файлу

fread(Sf. 7)

Мал.   11.1. Читання бінарного файлу

Line1\nLine2MJne3<- Line1\nBYTe2\Line3<- Нагадаю, що \n   —    один

символ. Запис даних в

зрушуємо покажчик на Записуємо три байти

7 байтів вут фаил починається з позиції

на яку указує покажчик (див. мал. 11.2).

Мал.   11.2. Запис бінарного файлу тт

і        ^ Читання двійкового (бинарно-

го) файлу здійснюється

функцією fread(). Даній функції потрібно передати всього два параметри -идентификатор файлу і кількість символів, яку потрібно прочитати. Функція повертає рядок, в якому будуть прочитані символи. Якщо

як параметр функції буде вказано більше число символів, чим є у файлі насправді, то помилки не буде — просто буде виведено все, що є.

Приклад читання двійкового файлу приведений в лістингу 11.1. Лістинг 11.1. Читання двійкового (бінарного) файлу

$f   =   fopen("/home/den/lines.txt","r")    or   die("0um6Ka   при   відкритті   файла\ п"); $s   =   fread($f,    4); echo   $s;

Мал.   11.3. Чтенієдвоїчного(бінарного) файлу

Ми відкрили файл в бінарному режимі "тільки читання". Потім ми прочитали 4 байти і записали їх в рядок $s, яка була виведена на екран. На мал. ll.3 ми бачимо сам файл lines.txt, а також виведення сценарію — рядок Line.

Для запису символів у файл використовується функція fwrite(), якою потрібно передати два параметри — ідентифікатор файлу і рядок, який буде записаний у файл.

У приведеному вище прикладі після читання чотирьох байтів покажчик зупинився на п'ятому байті: наступна операція читання або запису почнеться з п'ятої позиції. Це означає, що якщо нам потрібно записати що-небудь після символів Line, ми можемо відразу після операції читання записати потрібні нам дані. Але адже ми відкрили файл в режимі

читання, тому зараз запис неможливий. Виправимо це упущення. Напишемо сценарій, який працюватиме так:

Відкриває файл в режимі запису.

«Перемотує» файл на п'яту позицію, тобто встановлює
покажчик поточної позиції.

Записує інформацію у файл.

| Зберігає зміни у файлі.
Текст сценарію приведений в лістингу 11.2.

Лістинг 11.2. Запис в бінарний файл

<?

$f   =   fopen("/home/den/lines.txt","r+")    or   с11е("0шибка   при   відкритті   файла\ п"); fseek($f,    4,    SEEK_SET); fwr.ite ($f, "BYTE") ; fflush($f); ?>


 

А также другие работы, которые могут Вас заинтересовать

32458. Компоненты видеосистемы 28.5 KB
  например ускоритель трехмерной графики BIOS видеоадаптера Видеоадаптеры имеют свою BIOS которая подобна системной BIOS но полностью независима от нее. Другие устройства в компьютере такие как SCSIадаптеры могут также иметь собственную BIOS. Если вы включите монитор первым и немедленно посмотрите на экран то сможете увидеть опознавательный знак BIOS видеоадаптера в самом начале запуска системы.
32459. Назначение и функционирование шин: шина процессора, шина памяти, шина адреса 52 KB
  Шина это общий канал связи используемый в ПК для организации взаимодействия между компонентами системы. Шина это набор соединений по которым передаются различные сигналы. В Pentium III например эта шина работает на частоте 100 МГц и имеет ширину 64 разряда.
32460. Назначение, принцип действия, характеристики и классификация сканеров 37 KB
  Сканер считывает изображение и преобразует его в цифровые данные которые передаются процессору и там интерпретируются. Сканер разделяет изображение на микроскопические строки и колонки а затем определяет как плёнка в фотоаппарате сколько света отражается от каждой отдельной точки находящейся на пересечении строк и колонок. После того как сканер соберёт информацию о каждой точке он представляет результат виде цифрового файла в компьютер.
32462. Напряжение питания, перегрев и охлаждение процессоров 33.5 KB
  Теплоотводы бывают: Пассивные теплоотводы являются простыми радиаторами; активные содержат небольшой вентилятор требующий дополнительного питания. Активные теплоотводы со встроенным вентилятором выпускаются для быстродействующих П вентиляторы обычно подключаются к разъему питания дисковода или спец. разъему питания 12В для вентилятора на СП.
32463. Новые интерфейсы ввода-вывода – USB и Fire Wire 123 KB
  При подключении устройств к USB не нужно отключать питание настройка происходит автоматически технология Plug nd Ply сразу после физического подключения без перезагрузки или установки. Нужно просто подключить устройство после чего контроллер USB установленный в компьютер самостоятельно его обнаружит а также добавит необходимые для работы ресурсы и драйверы. Все периферийные устройства должны быть оборудованы разъёмами USB и подключаться к ПК через отдельный выносной блок называемый USBхаб или концентратор с помощью которого...
32464. Классификация, принцип действия и характеристики принтеров 575.5 KB
  Классификацию принтеров можно выполнить по целому ряду характеристик: способу формирования символов знакопечатающие и знакосинтезирующие; цветности чернобелые и цветные; способу формирования строк последовательные и параллельные; способу печати посимвольные построчные и постраничные; скорости печати; разрешающей способности. Для печати текстовой информации существуют режимы печати обеспечивающие различное качество: черновая печать Drft; типографское качество печати...
32465. Технологии отображения информации 35.5 KB
  Поток электронов электронный луч проходит через фокусирующую и отклоняющую катушки которые направляют его в определенную точку покрытого люминофором экрана. Период сканирования по горизонтали определяется скоростью перемещения луча поперек экрана. В процессе развертки перемещения по экрану луч воздействует на те элементарные участки люминофорного покрытия экрана в которых должно появиться изображение. Интенсивность луча постоянно меняется в результате чего изменяется яркость свечения соответствующих участков экрана.
32466. Направление технического прогресса в СКС и Т 27.5 KB
  Современная индустрия туризма за последние годы притерпела вестма существенные изменения в связи с внедрением новых компьютерных технологий успешное функционирование любой фирмы на рынке туристского бизнеса практически не мыслимо без использования современных информационных технологий. Современные компьютерные технологии активно внедряются в сферу туристского бизнеса и их применение становится неотъемлемым условием повышения конкурентоспособности любого туристского предприятия. Возможность формирования новых маркетинговых каналов...