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


 

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

17655. Дифракція Фраунгофера на щілині 37.03 KB
  Дифракція Фраунгофера на щілині. Тип дифракції при якому розглядається дифракційна картина утворена паралельними променями отримав назву дифракції Фраунгофера. Паралельні промені отримуємо за допомогою системи лінз. Розбиваємо площину щілини на ряд смужок. Вони є д
17656. Закон Брюстера. Зміна фази відбитої хвилі 42.86 KB
  Закон Брюстера. Зміна фази відбитої хвилі. Формули Френеля: 1 і 2 . 3 і 4 Із формули 1 для відбитої хвилі для pкомпоненти видно що коли то . Тобто pкомпонента для відбитої хвилі зникає. Використовуючи формулу Де називають кутом Брюстера.
17657. Закони відбиття та заломлення світла 35.1 KB
  Закони відбиття та заломлення світла. Коли промінь досягає плоскої границі розподілу двох середовищ він частково проходить в друге середовище заломлюється частково повертається назад відбивається. Закон відбиттся стверджує що падаючий і відбитий промені лежать в ...
17658. Закони заломлення для металів. Неоднорідна хвиля 137.46 KB
  Закони заломлення для металів. Неоднорідна хвиля. Конспект: для золота Для нормальной составляющей: ...
17659. Зв’язок між ступенем когерентності і параметром видності 44.88 KB
  Зв’язок між ступенем когерентності і параметром видності. Поняття когерентності пов’язане зі здатністю хвиль інтерферувати. Розглянемо ступінь когерентності на прикладі часової когерентності. Нехай в т. Р одночасно в момент часу t приходять 2 хвилі однакової частоти в...
17660. Зірковий інтерферометр Майкельсона 37.3 KB
  1 Зірковий інтерферометр Майкельсона Запропонував Фізо. Для визначення кутових розмірів об’єкту зірки. Розміщені навпроти щілин дзеркала нерухомі а дзеркала можна одночасно розсувати. Очевидно що видність смуг залежить від ступеня когерентно
17661. Інтерференція в тонких шарах інтерференційні дзеркала та просвітлююча оптика 28.84 KB
  Інтерференція в тонких шарах: інтерференційні дзеркала та просвітлююча оптика. При освітленні тонкої плівки відбувається накладання хвиль від джерела S які відбилися від передньої і задньої поверхонь плівки. Якщо світло біле то інтерференції смуги будуть кольоро...
17662. Інтерференція поляризованих променів 63.33 KB
  Інтерференція поляризованих променів. Як відомо для інтерференції необхідною умовою є когерентність променів. А також із відомої формули для інтерференційного члена що враховує взаємодію пучків: видно що результат інтерференції лінійно поляризованих променів зале
17663. Інформаційні властивості оптичного зображення 21.59 KB
  Інформаційні властивості оптичного зображення. Потік інформації біт/с виражається формулою Шенона де I кількість інформації у бітах; смуга частот у якій передається інформація; Pc характеристика сигналу потужність в даному разі; Pm характеристика смуги мінімаль