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


 

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

28592. Институт профессиональных бухгалтеров и аудиторов России 29 KB
  Институт профессиональных бухгалтеров и аудиторов России ИПБ России самая крупная саморегулируемая некоммерческая организация в России. С 2001 года ИПБ России Действительный член Международной федерации бухгалтеров IFAC с 2002 года аккредитован как профессиональное аудиторское объединение при Министерстве финансов Российской Федерации. Членами ИПБ России являются аттестованные профессиональные бухгалтеры и аудиторы.
28593. ИСТОРИЯ ВОЗНИКНОВЕНИЯ И РАЗВИТИЯ БУХГАЛТЕРСКОГО ДЕЛА 34.5 KB
  ИСТОРИЯ ВОЗНИКНОВЕНИЯ И РАЗВИТИЯ БУХГАЛТЕРСКОГО ДЕЛА Существуют многочисленные свидетельства ведения учетных записей во времена создания Александром Македонским одной из величайших империй. Развитие учета в период раннего средневековья было замедленным. Все это стало причиной застоя и отрицательно сказалось на развитии учета. Относительно полный учет в это время применялся в церквях и монастырях где были сосредоточены имущественные ценности.
28595. Методология проектного управления инновациями. Жизненный цикл инновационного проекта 31.5 KB
  Жизненный цикл инновационного проекта Инновационный проект это порядок определения целей и задач для создания или внедрения отдельного инновационного продукта. Инновационный процесс включает организационные производственные технологические коммерческие и другие мероприятия приводящие к внедрению и распространению инноваций. Таким образом инновационный проект можно определить как комплекс взаимосвязанных программ обеспечивающих эффективное достижение конкретной инновационной цели согласованных по ресурсам срокам исполнителям и...
28596. Перспективные инновационные проекты в социальнокультурном сервисе и туризме 32 KB
  Перспективные инновационные проекты в социальнокультурном сервисе и туризме Планирование составляет один из основных элементов системы управления инновационной деятельностью. Инновационные проекты характеризуются высокой неопределенностью на всех стадиях осуществления они не застрахованы от появления в любой момент более перспективной новинки. Даже успешно прошедшие стадию внедрения в производство проекты могут быть не приняты рынком и их производство должно быть прекращено. Инновационные проекты подразделяются на исследовательские и...
28597. Финансирование инновационных проектов 29.5 KB
  Его обобщающим показателем выступает финансовый риск предпринимателя и инвесторов который характеризует возможные потери в случае неудачного независимо от причины завершения финансируемого проекта. Риск в инновационной деятельности увеличивается с локализацией инновационного проекта. Основные риски связанные с инновационными проектами можно подразделить на следующие виды: экономический связанный с финансированием и калькуляцией проекта принятием и реализацией экономических решений; оригинальности обусловленный возможностью...
28599. Социально-культурный сервис и туризм как мобильно развивающаяся область сервиса 26.5 KB
  Это требует выполнения всех специфических требований диктуемых потребности рынка и безопасности туризма. При этом следует учитывать особенности сервисного обслуживания и тенденции развития международного туризма. Предметом мобильно развивающегося сервиса и туризма явся высокие технологии. Главная цель концепции мобильно развивающегося сервиса и туризма создание современного высокоэффективного и конкурентоспособного тур.
28600. Оператор выбора case 13.92 KB
  Условный оператор удобен в тех случаях, когда необходимо проверить 1-2-3 варианта. При большем числе получается слишком громоздкая и неудобная для восприятия конструкция из множества вложенных инструкций. Скажем, если требуется проверить 5 значений переменной x, то получим такую конструкцию: