Читайте также:
|
|
Перед началом работы с конкретным файлом надо связать с ним файловую переменную. Для этого используется специальная процедура Assign (Var f; Name: string). Здесь f – файловая переменная, а Name – имя файла. Если файл расположен не в текущем каталоге, то надо указывать его полное имя.
Пример.
Var f1, f2: text;
St: string;
…
Begin
…
Assign (f1; d: \a064\Dan.txt)
Write(‘Введите имя файла”);
Readln(St);
Assign (f2; St)
…
End.
Здесь описаны 2 файловые переменные f1 и f2. Далее в тексте программы файловая переменная f1 связывается с файлом Dan.txt, а f2 – с файлом, имя которого пользователь задаёт в текстовой строке St.
После связывания имени файловой переменной с именем файла следует открыть файл. Открытие текстового файла можно произвести двумя стандартными процедурами:
ü процедура Rewrite (f) создаёт новый физический файл с тем именем, которое связано с файловой переменной f. Если уже есть физический файл с таким именем, то на его месте создаётся новый пустой файл с таким же именем. Указатель текущей позиции устанавливается на его начало. Этот способ открытия используется, когда надо производить запись в файл;
ü процедура Reset (f) открывает уже существующий физический файл, связанный с файловой переменной f. Он будет открыт только для чтения. Если физический файл с таким именем отсутствует, то возникает ошибка.
ü процедура Append(f) открывает уже существующий файл и указатель текущей позиции устанавливается на конец файла. После такого открытия текстовый файл можно только дополнять информацией
Для работы с текстовыми файлами используются процедуры: Read и Readln для чтения из файла и Write и Writeln для записи в файл
Смысл их применения тот же, что и при работе с консолью и монитором. Наличие специальных разделителей в конце строк текстовых файлов позволяет использовать процедуры Readln и Writeln.. Общий вид данных процедур следующий:
Readln(var F: text; VI [,V2,...Vn]);
Writeln(var F: text; VI [,V2,...Vn]);
где V1...Vn переменные разных типов.
Т.е. по сравнению с уже привычным использованием этих процедур, в состав параметров входит файловая переменная.
При использовании этих процедур происходит перевод переменных, входящих в состав параметров в строку символов при записи в файл (Write и Writeln) и обратный перевод из строки символов в типы данных из списка ввода при чтении из файла (Read и Readln). Т.е. если NN - целое число, равное 123, а RR - вещественное число равное 0.45, то при выполнении процедуры Writeln(f, NN, RR) в текстовый файл будет записана строка символов:
123 0.45
При чтении из файла этой строки результат чтения будет зависеть от того, переменные какого типа будут использованы в процедуре Readln. Если будет переменная St определена как строка символов:
Var St: string;
то после выполнения процедуры Readln (f, St) переменная St примет значение: St = ‘123 0.45’. А если:
Var А: byte; R: real;
то после выполнения Readln (f, А, R) переменные примут значения: А=123, R=0.45.
При организации операций ввода-вывода используются специальные функции Eoln, Eof, SeekEoln, SeekEof.
Функция Eoln(var F: text) возвращает булевское значение True, если текущая файловая позиция находится на маркере конца строки или всего файла. Во всех других случаях значение функции будет False. Функция SeekEoln(var F: text) аналогична Eoln, отличие в том, что возвращает True, игнорируя пробелы и табуляции, которые находятся между маркером конца строки и текущей позиции.
Функция Eof(var F: text) возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом, и False — в противном случае.Функция SeekEoln(var F: text) аналогична Eof, но игнорирует пробелы и табуляции, которые находятся между маркером конца строки и текущей позиции.
Приложение 3
Дата добавления: 2015-07-11; просмотров: 106 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Блок схема программы | | | Клавиши и коды |