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


 

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

1082. Мощность и экономичность турбинных ступеней 443.5 KB
  Усилия в турбинной ступени и ее мощность. Относительный лопаточный КПД ступени. Двухвенечные ступени паровых турбин. Процесс расширения в проточной части двухвенечной ступени.
1083. Турбинные решетки и их выбор 3.25 MB
  Геометрические характеристики турбинных решеток. Газодинамические и режимные характеристики турбинных решеток. Маркировка турбинных решеток и их формирование. Зависимости для определения коэффициентов потерь сопловой решетки.
1084. Относительный внутренний КПД турбинной ступени 765.5 KB
  Потери трения диска и лопаточного бандажа. Потери при парциальном подводе водяного пара в турбинную ступень. Потери от утечек в турбинной ступени. Лабиринтовые уплотнения. Потери от влажности водяного пара.
1085. Расчет турбинных ступеней. Методика расчета турбинной ступени 426.5 KB
  Выбор исходных данных и параметров при расчете турбинной ступени. Методика расчета турбинной ступени. Процесс расширения водяного пара в турбинной ступени. Схема отклонения потока в косом срезе сопловой решетки. Особенности расчета турбинных ступеней.
1086. Особенности расчета и проектирования ступеней с длинными лопатками 499 KB
  Уравнения радиального равновесия. Законы профилирования турбинных лопаток. Закон постоянного профиля сопловых и рабочих лопаток по высоте ступени. Примеры исполнения лопаток паровых турбин.
1087. Основы проектирования паровых турбин 613 KB
  Основные показатели паровых турбин и их компоновки. Схема компоновки паровой турбины К-800-23,5 ЛМЗ. Предельная мощность однопоточной конденсационной турбины. Компоновочные решения для паровых турбин ТЭС. Упрощенная тепловая схема конденсационной ПТУ. Способы повышения мощности паровых турбин.
1088. Основные расчеты при проектировании паровой турбины 328 KB
  Построение процесса расширения водяного пара в проточной части турбины и оценки его расхода. Расчет числа ступеней и распределение теплоперепадов по ступеням турбины. Выбор частоты вращения валопровода турбоагрегата и числа его ЦНД.
1089. Обеспечение надежности основных элементов паровых турбин. Выбор конструкции роторов 915 KB
  Конструкции уплотнений паровых турбин. Расчет осевых усилий и способы их компенсации. Пример конструкции паровой турбины. Схема разгрузки осевого подшипника. Статическая прочность рабочих лопаток турбинных ступеней. Конструкции роторов паровых турбин.
1090. Особенности переменных режимов работы паровой турбины 792 KB
  Общая характеристика переменных режимов. Переменный режим работы турбинных решеток. Изменение степени реактивности от расчетного значения. Треугольники скоростей для последней ступени при изменении давления. Распределение давлений и теплоперепадов по ступеням турбины при переменном режиме ее эксплуатации.