Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать
  1. Процедура запису

Для запису у текстовий файл використовуються процедури

WRITE(<файлова змінна>,<список параметрів>);

WRITELN(<файлова змінна>,<список параметрів>);

Якщо перший параметр, файлова змінна відсутня, запис здійснюється у стандартний

В якості параметрів можуть бути змінні стандартних скалярних типів або рядкового типу величини

Якщо параметри є стандартних типів, то вони записуються в текстовому форматі послідовно з можливим форматом запису.

Процедура write здійснює запис у файл без введення ознаки кінця рядка., а процедура writeln після запису всіх параметрів допускає ознаку eof, тобто

  1. Функція ознаки кінця рядка

Повертає значення true, якщо файловий вказівник знаходиться в кінці рядка.

  1. Функція переміщення в кінець рядка

SEEKEOLN(<файлова змінна>);

Якщо файловий вказівник знаходиться не в кінці файла і йому передують довільна кількість пропусків або табуляції, то функція переміщує файловий вказівник в кінець рядка і повертає значення true.

Якщо ж вказівнику передує хоча б один символ відмінний від пропусків чи табуляції, то результат функції false.

  1. Функція переміщення в кінець файлу

Як і seekeoln ігнорує всі пропуски та табуляції, а також ознаки eoln з пустими рядками і переміщує файловий вказівник в кінець файлу, при цьому результат true. Якщо ж вказівнику передує хоча б один символ

  1. Процедура, що відкриває текстовий файл для дозапису

Для доповнення текстового файлу використовують режим до запису.

APPEND(<файлова змінна>);

При її виконанні файловий вказівник поміщається вкінець файлу. До запис можливий лише в кінці. Перемістити файловий вказівник на початок файлу неможливо.

Файлова змінна повинна бути зв’язана з конкретним файлом на диску.

Безтипові файли

При цьому файл вважається послідовністю байтів без умовного розділення на рядки символами eoln (як в текстових файлах) або на елементи деякого типу як у типізованих файлах.

Такі файли переважно застосовуються для швидкого перенесення даних з одного файла в інший без інтерпретації їх певним типом. Це може бути звичайне копіювання одного досить великого файла в інший. Для без типових файлів файлові змінні оголошуються при допомозі службового слова file.

Процедури reset та rewrite можуть мати певну відмінність. Це пов’язано з тим, що читання і запис у без типових файлах здійснюється блоками байтів певного розміру. Розмір блока задається в якості другого параметру процедур reset та rewrite відповідно:

При читанні даних із файлу вони поміщаються у спеціальну ділянку, яка визначається деякою змінною достатньо великою розміру.

За одну операцію читання-запису можна зчитати, записати декілька блоків.

Розмір цієї змінної, де зберігатимуться прочитанні дані, повинен бути достатнім для розміщення всіх блоків. Найчастіше таку змінну оголошують як деяку кількість байтів символів

Можна прочитати до 19 блоків. Для читання (запису) використовуються свої процедури

Процедура block read здійснює читання з без типового файлу деякої кількості блоків заданого розміру і поміщає їх у змінну buffer.

Кількість блоків, що читається задається

N – повертає реальну кількість прочитаних блоків.

BLOCK WRITE (VAR : FILE; VAR BUFFER; : LONGINT; VAR : LONGINT);

Записує у безтиповий представлений файловою змінною задану кількість k –блоків визначеного розміру із змінної buffer. Реальну кількість записуваних блоків повертає N.

Наприклад

Скопіювати дані з одного файлу в інший.

Var

f1, f2: file;

buffer: array[1..1000] of byte;

k, n: integer;

begin

assign(f1, ‘file1.dat’);

assign(f2, ‘file2.dat’);

reset(f1,100);

rewrite(f2,10);

while not eof (f1) do

begin

blockread (f1, buffer, 1, k);

blockwrite (f2, buffer, 10, n);

end;

close (f1); close(f2);

end.

Використання без типових файлів дозволяє виконувати ряд дій, пов’язаних з командними операційної системи.

Окремі ОС команди реалізуються простими викликами стандартних процедур.

З програми можна перейменовувати файли, копіювання, виділення.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]