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


 

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

26435. Организм и его составляющие 21 KB
  Уровни анатомической организации организма: организм – аппарат – функциональное объединение разнородных органов которые отличаются своим происхождением развитием но объединяются общностью функций эндокринный опорнодвигательный мочеполовой аппарат – система органов – совокупность органов имеющих общий план строения общность развития из 1 эмбрионального зачатка функций система органов пищеварения – трубкообразный тип из энтодермы. 3 группы систем органов: соматическая висцеральная и интегрирующая сердечнососудистая система...
26436. Органы кроветворения и иммунной защиты 21.5 KB
  Они делятся на: центральные органы красный костный мозг и тимус и периферические контролирующие внутреннюю среду: селезёнка и лимфоузлы; на границе организма с внешней средой: миндалины лимфоидные образования пищеварительного тракта дыхательного аппарата мочеполового аппарата. Красный костный мозг medulla osse – в костях вырабатывает в периферическую кровь кровяные клетки.
26437. Органы мочевыделения organa uropoetica 21.5 KB
  Анатомический состав: почки постоянно образуют мочу мочеточники непарный мочевой пузырь и мочеиспускательный канал у самцов мочеполовой. У птиц: почки – мочеточники – уросинус клоаки. Иннервация: почки: вагусом через экстра и интрамуральные ганглии. Кровоснабжение: почки: почечные арт.
26438. Парасимпатическая НС 20 KB
  Парасимпатическая иннервация происходит в голове от центров среднего и продолговатого мозга через экстра и интрамуральные ганглии а также ресничный крылонёбный подчелюстной и ушной ганглии; органы грудной и брюшной полости – от продолговатого мозга по вагусу через экстра и интрамуральные ганглии тазовой полости – от крестцового отдела спинного мозга по тазовым нервам через экстра и интрамуральные ганглии. Перерыв происходит в парасимпатических ганглиях: экстра и интрамуральных.
26439. Передняя кишка 21.5 KB
  Пищевод трубчатый мышечный орган выстланный слизистой оболочкой покрытой многослойным плоским ороговевающим эпителием устойчивым к воздействиям корма. Пищевод начинается в глотке и заканчивается в желудке. По расположению различают шейную грудную и брюшную части пищевода.
26440. Плечевой пояс 21 KB
  В области лопатки располагаются мышцы действующие на плечевой сустав предостная supraspinatus дельтовидная заостная infraspinatus малая круглая teres minor клювовидноплечевая coracobrachialis подлопаточная subscapularis большая круглая напрягатель капсулы сустава а также часть мышц плечевого пояса трапециевидная ромбовидная зубчатая вентральная serratus ventralis. У птиц плечевой пояс имеет трёхчленное построение: саблевидная лопатка коракоид и ключица.
26441. ПНС 20 KB
  По дорсальным корешкам через лежащие на дорсальном корешке чувствительные ганглии происходит афферентная связь со всеми органами тела. Через вентральные корешки осуществляются: прямая эфферентная соматическая связь центров с оперечно исчерченной мускулатурой; прерывистая эфферентная связь с мышечной стенкой сосудов перерыв происходит в симпатических ганглиях; прерывистая эфферентная связь с мышечной стенкой внутренностей и железами перерыв происходит в экстра или интрамуральных ганглиях.
26442. Позвоночный столб (columna vertebralis) 21.5 KB
  cervicales грудной v. Соединение: тела – межпозвоночные хрящи фиброзное кольцо и пульпозное ядро дорсальная продольная связка внутри позвоночного канала на долсальной поверхности позвонков эпистрофей крестец вентральная продольная связка последний грудной крестец; дужки: жёлтые связки; остистые отростки: межостистые связки у плотоядных мышцы надостистая связка грудной поясничный крестцовый выйная связка канатиковая и пластинчатая части; у собак – канатик у свиньи и кошки – нет у КРС вместе с надостистой связкой в...
26443. Половые железы самцов и самок 20.5 KB
  При развитии организма в мужскую сторону мезотелий половой складки в виде клеточных тяжей врастает в толщу железы формируя извитые канальцы. Передние мочеотделительные трубочки промежуточной почки также врастают в семенник и образуют прямые канальцы сеть семенника и семявыносящие канальцы.