Что такое Паскаль
Запись числовых констант, переменных и выражений.
Типы данных. Операции и функции над данными разных типов.
Структура программы
Операторы присваивания, ввода и вывода
Простейшие программы
Условный оператор
Операторы цикла.
Массивы
Процедуры и функции.
Строки.
Множества
Записи
Файлы |
Файлы.
В языке Паскаль
файл - это состоящая из некоторого числа компонент одного типа
структура данных со следующими особенностями:
- число компонент файла не фиксируется (в отличие от массива) и не
ограничивается сверху некоторым числом (в отличие от строк и множеств);
- доступ к компонентам файла возможен только путем их последовательного
перебора от начала файла (с первой компоненты);
- компоненты файла создаются только процедурой вывода и доступны только
процедуре ввода.
В Паскале определены файлы двух видов, описываемые следующим образом:
<
имя > = File Of <
тип > ;
<
имя > = Text
;
Первые называются типизированными файлами, а вторые -текстовыми.
В Турбо-Паскале
описанные выше файлы называются логическими (кроме того, в
системе Турбо-Паскаль есть логические файлы третьего вида - не
типизированные). Основное назначение логического файла -
обеспечить программе средства для обмена данными с периферийными
устройствами компьютера. В связи с этом вводится понятие физического
файла, как совокупности данных во внешней памяти (дискета, жесткий диск,
магнитная лента и др.) Кроме того, в качестве физического файла могут
использоваться и сами периферийные устройства, например, принтер).
Средством установления связи между логическими и физическими файлами в
Турбо-Паскале является процедура Assign.
Assign (<
ф.п. >, <
имя файла >);
< ф.п. > - файловая переменная (переменная файлового
типа), описанная в программе (имя логического файла).
< имя файла > - текстовое выражение, значением которого
является записанное по правилам операционной системы MS DOS имя файла
(имя физического файла). Типы компонент логического и физического файла
должны совпадать. Затем необходимо инициализировать файл, указав для
него направление передачи данных, т.е. открыть файл для записи или
чтения.
Для чтения файл открывается стандартной процедурой
Reset (<
ф.п. >);
при этом специальная
переменная-указатель устанавливается на начало файла.
Стандартная процедура
Rewrite (<
ф.п. >)
открывает файл для записи, при этом файл всегда создается заново, с
потерей информации в данном физическом файле, если она была туда ранее
записана.
Стандартная процедура
Append(< ф.п. >)
открывает для записи существующий текстовой файл с целью его расширения,
при этом переменная-указатель ставится в конец файла.
Чтение и запись происходят при помощи уже знакомых нам процедур
ввода-вывода Read и Write, с тем лишь отличием, что в них
необходимо указать в качестве первого параметра файловую переменную.
После каждой операции переменная-указатель перемещается на одну
компоненту.
После завершения в программе операций по обмену данными с файлом его
необходимо закрыть стандартной процедурой.
Close(< ф.п. >).
При работе с файлами используется функция
Eof(<
ф.п. >),
которая возвращает значение True, если переменная-указатель стоит
в конце файла, и False - в противном случае.
Пример 13.
Дан файл f компоненты которого являются целыми числами. Получить
в файле g все четные компоненты файла f, а в файле h
все нечетные.
Program Dfile;
Var f,h,g:
File Of Integer;
i:
Integer;
Begin
{Установка связи между файловыми переменными и соответствующими именами
файлов}
Assign( f ,’Data.dat’);
Assign(g , ‘Chet.dat’);
Assign(h , ‘Nechet.dat’);
{Открытие файлов для чтения и записи}
Reset(f); Rewrite(h); Rewrite(g);
While
Not(Eof(f)) Do
Begin
Read( f, i); {чтение из файла f}
If Odd(i)
Then Write(h,i) {запись в файл h}
Else Write(g, i) {запись в файл g}
End; {Закрытие файлов}
Close(f);
Close(g); Close(h);
End.
Пример 14.
Дан текстовой файл. Получить копию файла.
Program CopyFile;
Var f,g:
Text;
s:
String;
Begin
{установка связи файловых переменных с именами файлов}
Assign(f, ‘data1.txt’);
Assign(g, ‘data2.txt’);
{открытие файлов для чтения и записи}
Reset(f); Rewrite(g);
While
Not(Eof(f)) Do
Begin
Readln(f,s); {чтение из файла в строку}
Writeln(g,s) {запись в файл из строки}
End;
{закрытие файлов}
Close(f); Close(g)
End.
Процедуры и функции
для текстовых файлов
Обращение |
Действие |
Append(f) |
Открывает файл для
добавления в конец файла |
Read(f,
СписокВвода) |
Считывает из файла
одно или более значений в одну или более переменных |
ReadLn(f,
СписокВвода) |
То же с переходом
к следующей строке файла |
Write(f,
СписокВывода) |
Записывает одно
или несколько значений в файл, заранее открытый для вывода |
WriteLn(f,
СписокВывода) |
То же с выводом
маркера – признака конца строки |
SetTextBuf(f,
Буфер [, Размер]) |
Назначает буфер
ввода/вывода для файла (по умолчанию размер буфера – 128 байт) |
Flash(f) |
Выталкивает буфер
файла вывода |
Eoln(f) |
Возвращает признак
конца строки |
SeekEoln(f) |
Возвращает признак
конца строки, предварительно пропустив все пробелы и символы
табуляции |
SeekEof(f) |
Возвращает признак
конца файла, предварительно пропустив все пробелы, символы
табуляции и признаки конца строки |
|