31. Т Е К С Т О В Ы Е Ф А Й Л Ы
Особое место в языке ПАСКАЛЬ занимают текстовые файлы, компоненты
которых имеют символьный тип. Для описания текстовых файлов в языке
определен стандартный тип Тext:
var TF1, TF2: Text;
Текстовые файлы представляют собой последовательность строк, а
строки - последовательность символов. Строки имеют переменную длину,
каждая строка завершается признаком конца строки.
С признаком конца строки связана функция EOLn(var T:Text):Boolean,
где Т - имя текстового файла. Эта функция принимает значение TRUE,
если достигнут конец строки, и значение FALSE, если конец строки не
достигнут.
Для операций над текстовыми файлами, кроме перечисленных, опреде-
лены также операторы обращения к процедурам:
ReadLn(T) - пропускает строку до начала следующей;
WriteLn(T) - завершает строку файла, в которую производится за-
пись, признаком конца строки и переходит к началу следующей.
Для работы с текстовыми файлами введена расширенная форма операто-
ров ввода и вывода. Оператор
Read(T,X1,X2,...XK)
эквивалентен группе операторов
begin
Read(T,X1);
Read(T,X2);
...........
Read(T,XK)
end;
Здесь Т - текстовый файл, а переменные Х1, Х2,...ХК могут быть ли-
бо переменными целого, действительного или символьного типа, либо
строкой. При чтении значений переменных из файла они преобразуются из
текстового представления в машинное.
Оператор
Write(T,X1,X2,...XK)
эквивалентен группе операторов
begin
Write(T,X1);
Write(T,X2);
...........
Write(T,XK)
end;
Здесь Т - также текстовый файл, но переменные Х1,Х2,...ХК могут
быть целого, действительного, символьного, логического типа или стро-
кой. При записи значений переменных в файл они преобразуются из внут-
реннего представления в текстовый.
К текстовым файлам относятся стандартные файлы INPUT, OUTPUT.
Рассмотренные ранее операторы ввода - вывода являются частным слу-
чаем операторов обмена с текстовыми файлами, когда используются стан-
дартные файлы ввода - вывода INPUT, OUTPUT.
Работа с этими файлами имеет особенности:
-имена этих файлов в списках ввода - вывода не указываются;
-применение процедур Reset, Rewrite и Close к стандартным файлам
ввода - вывода запрещено;
-для работы с файлами INPUT, OUTPUT введена разновидность функции
EOLn без параметров.
TURBO PASCAL вводит дополнительные процедуры и функции, применимые
только к текстовым файлам, это SetTextBuf, Append, Flush, SeekEOLn,
SeekEOF.
Процедура SetTextBuf( var f: Text; var Buf; BufSize: Word ) служит
для увеличения или уменьшения буфера ввода - вывода текстового файла
f. Значение размера буфера для текстовых файлов по умолчанию равно
128 байтам. Увеличение размера буфера сокращает количество обращений
к диску. Рекомендуется изменять разиер буфера до открытия файла. Бу-
фер файла начнется с первого байта переменной Buf. Размер буфера за-
дается в необязательном параметре BufSize, а если этот параметр от-
сутствует, размер буфера определяется длиной переменной Buf.
Процедура Append( var f: Text ) служит для специального открытия
выходных файлов. Она применима к уже существующим физическим файлам и
открывает из для дозаписи в конец файла.
Процедура Flush( var f: Text ) применяется к открытым выходным
файлам. Она принудительно записывает данные из буфера в файл незави-
симо от степени его заполнения.
Функция SeekEOLn( var f: Text ): Boolean возвращает значение True,
если до конца строки остались только пробелы.
Функция SeekEOF( var f: Text ): Boolean возвращает значение True,
если до конца файла остались строки, заполненные пробелами.
32. К О М П О Н Е Н Т Н Ы Е Ф А Й Л Ы
Компонентный или типизированный файл - это файл с объявленным ти-
пом его компонент. Компонентные файлы состоят из машинных представле-
ний значений переменных, они хранят данные в том же виде, что и па-
мять ЭВМ.
Описание величин файлового типа имеет вид:
type M= File Of T;
где М - имя файлового типа, Т - тип компоненты. Например:
type
FIO= String[20];
SPISOK=File of FIO;
var
STUD, PREP: SPISOK;
Здесь STUD, PREP - имена файлов, компонентами которых являются
строки.
Описание файлов можно задавать в разделе описания переменных:
var
fsimv: File of Char;
fr: File of Real;
Компонентами файла могут быть все скалярные типы, а из структури-
рованных - массивы, множества, записи. Практически во всех конкретных
реализациях языка ПАСКАЛЬ конструкция "файл файлов" недопустима.
Все операции над компонентными файлами производятся с помощью
стандартных процедур:
Reset, Rewrite, Read, Write, Close.
Для ввода - вывода используются процедуры:
Read(f,X);
Write(f,X);
где f - имя логического файла, Х - либо переменная, либо массив,
либо строка, либо множество, либо запись с таким же описанием, какое
имеет компонента файла.
Выполнение процедуры Read(f,X) состоит в чтении с внешнего уст-
ройства одной компоненты файла и запись ее в X. Повторное применение
процедуры Read(f,X) обеспечит чтение следующей компоненты файла и за-
пись ее в X.
Выполнение процедуры Write(f,X) состоит в записи X на внешнее уст-
ройство как одной компоненты. Повторное применение этой процедуры
обеспечит запись X как следующей компоненты файла.
Для работы с компонентными файлами введена расширенная форма опе-
раторов ввода и вывода:
Read(f,X1,X2,...XK)
Write(f,X1,X2,...XK)
Здесь f - компонентный файл, а переменные Х1, Х2,...ХК должны
иметь тот-же тип, что и объявленный тип компонент файла f.
... ячейка, а имя переменной превращается в адрес ячейки. Появление этого адреса происходит в результате работы специального оператора языка (NEW), однако его значение в большинстве случаев не используется при программировании на алгоритмических языках типа Паскаль. Условимся считать, что адрес ячейки, которая будет хранить переменную А, есть А. Или, другими словами, А - это общее имя переменной и ...
... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой -------------------------------------------------- Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...
... . Поэтому так легко путешествовать по Всемирной паутине (WWW — Worl Wide Web), переходя с сайта на сайт по гиперссылкам. Для отображения в «плоском* тексте смысловых связей между основными разделами или понятиями можно использовать гипертекст. Гипертекст позволяет структурировать документ путем выделения в нем слов-ссылок (гиперссылок). При активизации гиперссылки (например, с помощью щелчка мышью ...
... # будет тесно интегрирован с языком XML[1]. 2.2 Паскаль Паскаль [PASCAL - акроним с французского - Program Applique a la Selection et la Compilation Automatique de la Litterature] - Процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского ...
0 комментариев