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


 

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

1621. Оценка качества спермы по интенсивности дыхания 19.87 KB
  Активность спермы оценивают по скорости обесцвечивания (восстановления) метиленовой синьки, смешанной со спермой. При дыхании спермии потребляют кислород, растворенный в смеси, в результате этого синька обесцвечивается.
1622. Плацентарный барьер 19.59 KB
  Плацентарный барьер - совокупность морфологических и функциональных особенностей плаценты, обусловливающих ее способность избирательно пропускать вещества из крови матери к плоду и в обратном направлении.
1623. Подготовка к оказанию акушерской помощи 19.88 KB
  Акушерскую помощь оказывают чаще во время родов и реже при беременности и в послеродовом периоде. Обычно она бывает неотложной, подлежащей быстрому и точному исполнению.
1624. Половой акт (половые рефлексы самцов) 20.76 KB
  Половой акт — это комплекс условных и безусловных половых рефлексов, обеспечивающих выделение спермы из половых органов самца и внедрение ее в половые пути самки.
1625. Половой цикл у разных видов животных, его стадии 20.82 KB
  Половой цикл - сложный нейрогуморальный рефлекторный процесс, сопровождающийся комплексом физиологических и морфологических изменений в пол органах и во всем организме самки от одной стадии возбуждения до других.
1626. Положение, предлежание, позиция и членорасположение плода во время родов 18.8 KB
  Положение плода — расположение продольной оси тела плода по отношению к продольной оси тела матери. Продольное расположение правильное, вертикальное и поперечное — патологические.
1627. Понятие о ветеринарной гинекологии и андрологии. Их задачи в профилактике и ликвидации бесплодия с/х животных 20.83 KB
  Ветеринарная гинекология как отрасль клинической ветеринарии изучает патологические процессы в половых и других органах вне беременности, родов и послеродового периода и процессы, приводящие к бесплодию самок.
1628. Понятие о естественном осеменении животных 20.15 KB
  Естественное осеменение в половые - комплекс условных и безусловных рефлексов обеспечения, выделения спермы из органа самца в половые органы самки.
1629. Понятие о родовом акте. Факторы, обуславливающие роды 20.16 KB
  Родовой акт - физиологический процесс, заключающийся в выделении их организма матери зрелого живого плода с изгнанием плодных оболочек и плодных вод.