Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль_конс_лек.doc
Скачиваний:
10
Добавлен:
07.12.2018
Размер:
404.99 Кб
Скачать

Стандартные процедуры и функции для работы с файлами.

Процедура ASSIGN(<ф.п.>,<имя файла на диске>) – Связывает файловую переменную (ф.п.) с конкретным файлом на диске (имя файла на диске).

Процедура REWRITE (<ф.п.>) – открывает файл для записи и устанавливает указатель на начало файла. При открытии файла в режиме записи вся содержащаяся в нем информация уничтожается, причем если файла с указанным именем не существует, то он создается.

Процедура RESET (<ф.п.>) – открывает существующий файл для чтения и устанавливает указатель на начало файла, при этом информация остается неизменной. Файл должен существовать, иначе операция открытия завершается с ошибкой.

Процедура APPEND(<ф.п.>) – открывает существующий файл для добавления и устанавливает указатель на конец файла. Используется для работы с текстовыми файлами.

Процедура READ (<ф.п.>,<список_ввода>) – Производит чтение информации из файла.

Процедура WRITE (<ф.п.>,<список_вывода>) – Записывает информацию в файл.

Процедура READLN(<ф.п.>,<перемен.>) – Производит чтение строки из файла, перемещая указатель на следующую строку. Используется для работы с текстовыми файлами.

Процедура WRITELN(<ф.п.>,<перемен.>) – Записывает строку в файл. Используется для работы с текстовыми файлами.

Процедура CLOSE(<ф.п.>) – Закрывает указанный файл.

Функция EOF(<ф.п.>) – Возвращает значение True, если достигнут конец файла, иначе – False.

Функция EOLN(<ф.п.>) – Возвращает значение True, если достигнут конец строки файла, иначе – False.

Пример:

Assign (F, ’C:\f1.txt’);

Rewrite (F);

Close (F);

Работа с текстовыми файлами

Ключи компилятора {$I+} и {$I-} используются для проверки результатов ввода-вывода. Если используется ключ {$I+}, то при возникновении ошибки ввода-вывода программа прекращает работу, данный ключ используется по умолчанию. Если используется ключ {$I-}, то при возникновении ошибки ввода-вывода программа не прекращает работу, а код ошибки можно получить с помощью функции IOResult.

Функция IOResult принимает значение 0, если последняя операция ввода-вывода завершилась успешно, и другое значение – в противном случае. Одновременно значение системной переменной, содержащей код ошибки, сбрасывается в 0. Функцию можно использовать только при наличии ключа компилятора {$I-}.

Пример:

program f_pr;

uses crt;

var

f_in, f_out:text;

r, s, l:real;

begin

clrscr;

{$I-}

assign(f_in,'in_1.txt');

reset(f_in);

{$I+}

if IOResult <> 0

then

begin

writeln('file not found');

readkey;

exit

end;

read(f_in,r);

close(f_in);

s:=pi*r*r;

l:=2*pi*r;

assign(f_out,'out_1.txt');

rewrite(f_out);

write(f_out,s,l);

close(f_out);

end.

Работа с типизированными файлами

Функция FileSize(<ф.п.>) возвращает текущий размер файла в компонентах (не применяется для текстовых файлов).

Функция FilePos(<ф.п.>) возвращает номер текущей компоненты файла (не применяется для текстовых файлов).

Процедура Seek(<ф.п.>,<номер>) осуществляет настройку на требуемую компоненту файла (не применяется для текстовых файлов).

Пример:

Программа создает файл из 10 вещественных чисел. Выводит числа, начиная с шестого, и вычисляет сумму выведенных чисел.

program F_type;

uses CRT;

const n=10;

var

Numfile:file of real;

i:byte;

Num, s:real;

begin

Clrscr;

Assign(Numfile, 'f:\Work\Numer.dat');

Rewrite(Numfile);

Writeln('Для создания файла введите ', n, ' чисел:');

for i:=1 to n do

begin

Write(i,' число:');

Readln(Num);

Write(Numfile, Num);

end;

Close(Numfile);

Writeln;

Writeln('Результат:');

Reset(Numfile);

s:=0;

Seek(Numfile,5);

for i:=5 to FileSize(NumFile)-1 do

begin

Read(Numfile, Num);

Writeln(i+1, ' число: ', Num:6:3);

s:=s+Num;

end;

Close(Numfile);

Writeln('s=', s:6:3);

Readkey;

end.

Результаты работы программы

Для создания файла введите 10 чисел:

1 число:5.6

2 число:-8.4

3 число:5.12

4 число:-71.56

5 число:8.3

6 число:12.7

7 число:53.2

8 число:45.8

9 число:25.3

10 число:14.32

Результат:

6 число: 12.700

7 число: 53.200

8 число: 45.800

9 число: 25.300

10 число: 14.320

s=151.320