При работе с файлами выполняется следующая цепочка команд:
а) при записи файла
ASSIGN (F1, TXT, DAN);
REWRITE (F1);
WRITELN (F1, N);
CLOSE (F1);
а) при чтении файла
ASSIGN (F1, TXT, DAN);
RESET (F1);
WRITELN (F1, N);
CLOSE (F1);
F1 – Вспомогательная файловая переменная.
N – Вспомогательная переменная для записи (чтение текста из файла).
Где:
ASSIGN – Логическое подключение из файла TXT, DAN к F1.
REWRITE (F1) {RESET (F1):} – Открытие файла для записи {чтения} текста.
WRITE (F1, N) {READ (F1, N):} – Запись(чтение) текста в файл на магнитный диск.
CLOSE (F1) – Закрытие файла.
Пример записи данных с клавиатуры во вспомогательную переменную, затем сохранение на магнитный диск показан на левой стороне диаграммы. Пример чтения данных с магнитного диска во вспомогательную переменную, затем вывод из нее на экран показан на правой стороне диаграммы.
Задача. Постановка задачи: Составить программу формирования файла F, состоящего из целых чисел. Программа показывает работу с файловой переменной F и внешним файлом DAT.TXT. В файл заносятся N= 6 записей, каждая из которых представляет собой целое число.
|
|
Программа решения задачи имеет вид:
PROGRAM ZAP_TIP; {Имя программы}
VAR {Раздел описания переменных}
F:FILE OF INTEGER;
X,I:INTEGER;
begin
ASSIGN(F,'DAT.TXT');{подключение файла 'DAT.TXT' к файловой переменной F}
REWRITE(F); {открытие файла на запись}
WRITELN(' ВВЕДИТЕ 6 ЦЕЛЫХ ЧИСЕЛ '); {Вывод сообщения}
FOR I:=1 TO 6 DO {цикл для ввода данных}
BEGIN
READ(X); {чтение с клавиатуры}
WRITE(F,X); {запись на магнитный диск в файл}
END; {конец цикла}
CLOSE(F); {закрытие файла}
END. {Конец программы}
Задача. Постановка задачи: Составить программу чтения файла F, состоящего из целых чисел. Программа выполняет работу с файловой переменной F и внешним файлом DAT.TXT. Из файла выводятся целые числа.
Программа решения задачи имеет вид:
program CTEN_TIP; {Имя программы}
VAR {Раздел описания переменных}
F:FILE OF INTEGER;
X,I:INTEGER;
BEGIN {начало операторной части программы}
WRITELN('ЧТЕНИЕ ТИПИЗИРОВАННОГО ФАЙЛА'); {Вывод сообщения}
ASSIGN(F,'DAT.TXT'); {подключение файла 'DAT.TXT' к файловой переменной F}
RESET(F); { открытие файла для чтения}
WHILE NOT EOF (F) DO {цикл для чтения данных с магнитного диска на экран}
BEGIN
READ(F,X); {чтение данных из файла в переменную}
WRITE(X,' '); {вывод данных из переменной на экран}
END;
CLOSE(F); { закрытие файла}
END. {Конец программы}
Задача. Постановка задачи: Составить программу, ввода текстового файла с именем 'TEX.TXT', представляющий собой список необходимой техники. Сделать так, чтобы в каждой строке файла записывалось одно наименование. При вводе каждого наименования начинать с новой строки. На экран вывести из файла 'TEX.TXT' список техники. Каждое наименование вывести с новой строки.
Программа решения задачи имеет вид:
|
|
PROGRAM VV_TEX; {Имя программы}
VAR{Раздел описания переменных}
SP:TEXT;
C:CHAR;
I,N:INTEGER;
BEGIN
ASSIGN(SP,'TEX.TXT');{подключение файла 'TEX.TXT' к файловой переменной F}
REWRITE(SP); {открытие файла на запись}
WRITE('ВВЕДИТЕ КОЛИЧЕСТВО СТРОК В СПИСКЕ:'); {Вывод сообщения}
READLN(N); {вод значений переменной N с клавиатуры}
WRITELN('ВВЕДИТЕ НАИМЕНОВАНИЕ ТЕХНИКИ ',N:1,' НАИМЕНОВАНИЙ');
FOR I:=1 TO N DO {цикл для ввода строк текста с клавиатуры в файл}
BEGIN
WHILE NOT EOLN DO {цикл для ввода одной строки текста в файл}
BEGIN
READ(C); {ввод текста в переменную C}
WRITE(SP,C); {запись текста из переменной в файл}
END; {конец внутреннего цикла}
READLN;
WRITELN(SP); {запись в файл }
END; {конец внешнего цикла}
CLOSE(SP); { закрытие фала}
WRITELN('СПИСОК ТЕХНИКИ'); {Вывод сообщения}
RESET(SP); {открытие файла на чтение}
WHILE NOT EOF (SP) DO {внешний цикл чтения строк}
BEGIN
WHILE NOT EOLN(SP) DO {Внутренний цикл чтения одной строки}
BEGIN
READ(SP,C); {чтение во вспомогательнуюпеременную}
WRITE(C) {вывод на экран}
END; {конец внутреннего цикла}
READLN(SP); {чтение из файла }
WRITELN; {переход на новую строку}
END {конец внешнего цикла}
END. {конец файла}