Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.docx
Скачиваний:
36
Добавлен:
21.12.2018
Размер:
2.15 Mб
Скачать

Создание файла и запись данных в него

var

f: file of char;

c: char;

i, n: byte;

begin

assign (f, 'c:\file.txt');

rewrite (f);

write ('Количество символов: ');

readln (n);

for i:=1 to n do begin

write ('Введите символ: ');

readln (c);

write (f, c);

end;

close (f);

end.

Процедура assign обеспечивает связь файловой переменной программы с реальным файлом на диске. Первым аргументом указывается переменная, вторым – адресное имя файла.

Процедура rewrite открывает файл в режиме записи, т.е. мы можем вводить данные в файл с помощью процедуры вывода из программы write. Если указанный файл отсутствует на диске, то он будет создан. Если файл существует и содержит данные, то все они будут удалены и заменены в дальнейшем новыми (перезаписаны).

Запись данных в файл – результат выполнения процедуры write (f, c), где f – файловая переменная, а с – выводимый из программы, но вводимый в файл символ.

В конце требуется закрыть файл и «освободить» переменную f. Это делается с помощью процедуры close.

Чтение данных

var

f: file of char;

c: char;

begin

assign (f, 'c:\file.txt');

reset (f);

while not eof (f) do begin

read (f, c);

writeln (c);

end;

close (f);

readln

end.

Процедура reset открывает файл для чтения. Т.е. мы можем в дальнейшем в программе извлекать данные из файла с помощью процедуры read.

Данные извлекаются «порциями» базового типа. В данном примере – это (символы). char

Чтение данных из файла продолжается до тех пор, пока не будет достигнут конец файла. Функция eof проверяет достигнут ли конец файла, переданного ей в качестве аргумента и, если достигнут, возвращает true. Выражение not eof (f) проверяет обратное – то, что конец файла еще не достигнут.

Функция ioResult

var

f: file of char;

c: char;

r: integer;

begin

assign (f, 'c:\file1.txt');

{$I-}

reset (f);

{$I+}

r := ioresult;

if r <> 0 then

writeln ('Такого файла нет')

else

while not eof (f) do begin

read (f, c);

writeln (c);

end;

close (f);

readln

end.

Файл, из которого мы собираемся ввести данные в программу, может отсутствовать или быть недоступным. В этом случае, при запуске программы на выполнение происходит аварийный выход из нее.

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

Функция IOResult возвращает ноль лишь в том случае, если файл существует.

Редактирование файла

var

f: file of char;

c: char;

n: integer;

begin

assign (f, 'c:\file.txt');

reset (f);

write ('Номер элемента: ');

readln (n);

seek (f, n);

write ('Новый символ: ');

readln (c);

write (f, c);

close (f);

readln

end.

В языке программирования Pascal для редактирования файлов предназначена процедура seek. В качестве аргументов она принимает файловую переменную и номер заменяемого элемента. В это место помещается текущий указатель файла. Далее с помощью write производится запись в файл.

Предварительно файл необходимо открыть для чтения (reset).