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); ?>


 

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

12070. Совершенствование системы управления человеческими ресурсами ОАО АИКБ «Татфондбанк» 379.5 KB
  Введение На рубеже XXI века в экономически развитых странах родилась характерная для новой эпохи постиндустриального развития новая стратегия управления предприятиями краеугольным камнем которой является решающая роль человека в их деятельности. Трудовые ресурсы а...
12071. Проектирование решения по оптимизации кадрового состава АКБ «АЛТАЙ - БАНК» 256 KB
  Введение Актуальность изучения разработки управленческих решений по оптимизации кадрового состава банка состоит в том что одна из основных и наиболее ответственных функций выполняемых руководителем в процессе управления принятие решений. Целью написания наст
12072. Удосконалення формування розподілу прибутку підприємства при зовнішньоекономічній діяльності (за матеріалами ТОВ «Банк Ренесанс Капітал») 481.5 KB
  ДИПЛОМНА РОБОТА на тему: Удосконалення формування розподілу прибутку підприємства при зовнішньоекономічній діяльності за матеріалами ТОВ Банк Ренесанс Капітал ВСТУП Проблематика трансформаційних процесів вимагає наукового розв’язання сучасних екон
12073. АНАЛИЗ СОВРЕМЕННОЙ ПРАКТИКИ КРЕДИТОВАНИЯ ФИЗИЧЕСКИХ ЛИЦ В СБЕРЕГАТЕЛЬНОМ БАНКЕ РФ НА ПРИМЕРЕ ДОПОЛНИТЕЛЬНОГО ОФИСА № 203 АКБ СБ РФ ОАО ГОРОДСКОЕ ОТДЕЛЕНИЕ № 2363 Г.НОВОКУЗНЕЦК 587 KB
  ВВЕДЕНИЕ В условиях перехода экономики России к рыночным отношениям развитие потребительского кредитования приобретает все большее значение. Коммерческий банк выдавая потребительский кредит способствует в первую очередь решению финансов...
12074. Расчёты потребности механообрабатывающего цеха в материальных, трудовых ресурсах 935.5 KB
  СОДЕРЖАНИЕ Введение 1 Краткое описание объектов производства и их технологических процессов 2 Планирование производства продукции 3 Расчет потребности в оборудовании и его загрузки ...
12075. Учет и аудит расчетов по оплате труда в бюджетных организациях 622.5 KB
  ДИПЛОМНАЯ РАБОТА На тему Учет и аудит расчетов по оплате труда в бюджетных организациях Аннотация Дипломная работа состоит из введения 3х глав заключения списка используемой литературы. Во введении обосновывается актуальность темы определяются цели и ...
12076. Причины реформирования бюджетной системы и последние поправки к БК РФ 167.5 KB
  Введение. В формировании и развитии экономической структуры современного общества ведущую определяющую роль играет государственное регулирование осуществляемое в рамках избранной властью экономической политики. Одним из наиболее важных ме...
12077. Параметры продуктов сгорания в камере ракетного двигателя 127.79 KB
  Отчет Лабораторная работа №1 Параметры продуктов сгорания в камере ракетного двигателя Цель работы: С помощью термодинамического метода определить параметры продуктов сгорания топлива в камере. Исходные данные для расчетов: Компоненты: Кислород...
12078. Розроблення проекту бази даних Microsoft SQL Server 2005 1.49 MB
  Розроблення проекту бази даних Microsoft SQL Server 2005 Інструкція до лабораторної роботи № 1 з курсу Бази даних та знань Розроблення проекту бази даних Microsoft SQL Server 2005: Інструкція до лабораторної роботи № 1 з курсу €œБази даних та знань€ для студентів базового напр