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


 

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

52484. Kreatives Deutsch: Ich kann auch Dichter sein 196.5 KB
  usrьstung:Мusik von Bethoven Portrдte der deutschen Dichter die gedruckten Teile der Gedichte ein Projektor. Durchfьhrung der Stunde Lehrer : Guten Tg liebe Schьler Wir begrьЯen euch sehr herzlich in unserem Gedichtlbortorium Wir mchen jetzt eine interessnte Reise in die Welt der Dichtung und des Reimes. Viel SpЯ lso und gute Erlebnisse Die erste Sttion wird Die lustigen Reime . Lehrer: Sehr schцn hbt ihr ds gemcht Fьr so begbte Dichter wr die ufgbe zu leicht.
52485. Wer wird Millionär 277 KB
  In unserem Sl sind die besten Kenner der deutschen Sprche. Der Lehrer erklärt die Regeln des Spieles gibt den Schülern eine ufgbe um die Teilnehmer zu wählen. Frge: 50 Jeder Spieler ht 3 Joker: 50 50 T – Telefon P – Publikum Frgen zum Spiel I 1. Wie viele Frben gibt es in der Flgge Deutschlnds .
52486. In der Deutschstunde 119.5 KB
  Wie geht’s Seid ihr guter Lune Die Schüler ntworten. L: Wir beginnen mit den Rätselerzählungen die ihr zu Huse geschrieben hbt. Die Schüler hören und rten ws für eine Stunde ds ist. Sch 1: In dieser Stunde turnen wir n den Ringen springen hoch lufen um die Wette spielen Fußbll.
52487. Розв’язування текстових задач, зокрема комбінаторних 43 KB
  Систематизувати й поглибити знання учнів шляхом розв’язування текстових задач, що потребують використання залежностей між величинами; розвивати логічне мислення, культуру математичної мови і записів; виховувати інтерес до математики, взаємодовіру, посилювати міжпредметну інтеграцію
52488. Функції психодіагностики в навчально-виховному процесі 146.5 KB
  Інформація яка буде одержана за допомогою діагностики дасть змогу сформулювати точні уявлення про позашкільні інтереси учнів їхні плани. Влітку перед початком занять я як майбутній класний керівник 5 класу проводжу попередню діагностику учнів класу: непряму – переглядаю особові справи спілкуюся з класоводами цього класу; пряму – відвідую сім’ї моїх майбутніх вихованців. Після чого складається таблиця Початкові відомості про учнів класу. У деяких учнів можуть зміниться навіть взаємини в родині її склад житлові умови та матеріальний...
52489. Розвиток діалогічного мовлення за професійним спрямуванням. (професії «Бармен, офіціант», «Кухар, офіціант») 106.5 KB
  Це може бути відповідь згода заперечення уточнююче запитання прояв солідарності співчуття радості і т.Запитання зустрічне запитання: − Cn you tke nother plce − Just now.Повідомлення – запитання: Tht stek is not tsty .Спонукання запитання або повідомлення: We hve no strwberries tody.
52490. Кольори в ритмічній пульсації 57.5 KB
  Мета: Поглибити знання учнів про творчість французького композитора Клода Дебюссі на прикладі фортепіанної мініатюри Місячне сяйво з Бергамаської сюїти. Залучити учнів до сприйняття музичного творущо розкриває витончені відтінки багатогранної образної палітри настроїв людини та довкілля яке вона сприймає. Виховувати музичний смак учнів потяг до прекрасного. Групи учнів получили творчі завдання.
52491. Побудова стовпчикових і кругових діаграм 77.5 KB
  Вчити будувати й читати кругові й стовпчасті діаграми. Розвивати логічне мисленя, обчислювальні навички, навички роботи на комп`ютері. Виховувати активність, працелюбність
52492. Связь украинцев с украинской диаспорой за рубежом 132 KB
  Ход урока Учитель: Ldies nd gentlemen I m very gld to see you t our conference devoted to the meeting with the members of Ukrinin Dispor in the other countries. Учитель: Let me introduce you member of Ukrinin Dispor from London – Mry Brown. I m techer of Ukrinin History t school. Ukrinin ssocition in London is situted in 154 Hollnd Prk venue.