TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

Подпрограммы

Операции над файлами могут осуществляться только с помощью функций и процедур. Перед этим файл должен быть связан с набором данных, а если это касается элементов файла, то файл должен открыт. Связь файла с помощью Reset и Rewrite. Использование процедуры Reset не означает, что файл открыт исключительно для ввода элементов набора данных, а использование процедуры Rewrite также не означает, что файл открыт исключительно для вывода. Перед окончанием выполнения программы каждый файл должен быть закрыт. Для этой цели служит процедура Close. Само завершение программы не влечёт за собой закрытия ещё не закрытых файлов.

После открытия указатель файла находится в начальном положении. Указатель файла можно изменить с помощью процедуры Seek. Текущий размер файла можно определить с помощью функции FileSise, а текущее положение указателя с помощью функции FilePos. Если файл установлен в промежуточном положении, т.е. между началом и концом, то каждое выполнение процедуры Write приведёт к изменению ближайшего элемента файла. Это изменение никак не скажется на остальных элементах. Поэтому файлы с элементами установленного типа могут представлять наборы данных с последовательным и прямым доступом.

Процедура Assign

Синтаксис: Assign (FileVar, StrExp)

FileVar - имя файловой переменной, StrExp - строковое выражение. Не допускается, чтобы файл FileVar был открыт.

Выполнение процедуры Assign приводит к связи файла FileVar с набором данных, определённых выражением StrExp.

Пример:

Var
Results: file of real;
...
Assign(Results,'A.TESTS.DOC');

Файловая переменная Results представляет файл с элементами типа real.

Процедура Assign связывает файл Results с набором данных TESTS.DOC, находящемся в дисковом устройстве А:.

Процедура Assign не открывает файл Results.

Процедура Reset

Синтаксис: Reset (FileVar)

FileVar - имя файловой переменной. Перед выполнением процедуры Reset файл должен быть связан с существующим набором данных. Процедура Reset открывает файл FileVar, указатель файла устанавливается в начальном положении, т. е. перед его первым элементом.

Пример:

Var
InpFile: file of record
Name: string[30];
Income: real;
end;
...
Assign (InpFile,'INCOME.DOC');
Reset (InpFile);

Процедура Assign связывает файл InpFile с набором данных INCOME.DOС, находящемся в текущем каталоге.

Процедура Reset открывает файл InpFile.

Открытие файла с помощью Reset не исключает в будущем возможности обращения к нему с помощью процедур Seek и Write.

Процедура Rewrite

Синтаксис: Rewrite (FileVar)

FileVar - имя файловой переменной. Перед выполнением процедуры Rewrite файл FileVar должен быть связан с набором данных.

Процедура Rewrite открывает файл FileVar, указатель файла устанавливается в начальное положение, т.е. перед его первым элементом. Если перед выполнением процедуры Rewrite набор данных, связанный с файлом, не существовал, то он будет создан. Если существовал, то будет удалён и создан заново. В обоих случаях будет создан пустой набор данных.

Пример:

Var
OutFile: file of array [1..20] of byte;
...
Assign (OutFile,'TESTS.OUT');
Rewrite (OutFile);

Процедура Assign связывает файл OutFile с набором данных TESTS.OUT, находящимся на дискете в дисковом устройстве В:.

Процедура Rewrite открывает файл OutFile. После открытия файл пуст.

Процедура Write

Синтаксис: Write (FileVar, VarList)

FileVar - имя файловой переменной, VarList - список имён переменных. Необходимо, чтобы файл FileVar был открыт. Все переменные списка VarList должны быть одинакового типа с элементами файла.

Выполнение процедуры Write со списком имён переменных эквивалентно выполнению последовательности процедур Write с именами этих переменных. Выполнение процедуры Write с именем переменной приводит к выводу в файл FileVar значения, присвоенного этой переменной.

Пример:

Type
ElmType = record Re, lm : Real

end
Var
OutFile: file of ElmType;
ArrVar: array [boolean] of ElmType
...
Assign (OutFile,'COMPLEX.RES');
Rewrite (OutFile);
Write (OutFile, ArrVar [false], ArrVar [true])

 

Процедура Assign связывает файл OutFile с набором данных COMPLEX.RES.

Процедура Rewrite открывает файл OutFile.

Процедура Write выводит в файл OutFile значение, присвоенное элементом ArrVar [false] и ArrVar [true] массива ArrVar.

Замена приведённого оператора Write оператором

Write (FileVar, VarList);

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

Процедура Close

Cинтак сис: Close (FileVar)

FileVar - имя файловой переменной. Файл FileVar может быть закрыт или открыт.

Перед выполнением процедуры Close файл FileVar закрывается. Если перед выполнением процедуры файл не был открыт, то его состояние не изменяется. Окончание выполнения программы не влечёт за собой вызова процедуры Close.

Пример:

Var
NewFile: file of boolean
begin
Assign (NewFile,'EMPTY');
Rewrite (NewFile);
Close (NewFile)
end

После выполнения указанной программы в текущем каталоге будет образован пустой набор данных EMPTY.

В дальнейшем этот набор данных может быть заполнен элементами типа boolean.

Функция FileSize

Синтаксис: FileSize (FileVar)

FileVar - имя файловой переменной. Файл FileVar должен быть открытым.

Результатом функции FileSize будет величина типа integer, значение которой равно количеству элементов файла FileVar.

Пример:

Var
FileVar: file of 2..4;
begin
Assign (FileVar,'USELESS.DOC');
Rewrite (FileVar);
Writeln (FileSize(FileVar));
end

После выполнения процедуры Rewrite файл FileVarпуст.

Поскольку в пустом файле 0 элементов, после выполнения приведённой программы будет выведено число 0.

Функция FilePos

Синтаксис: FilePos (FileVar)

FileVar - имя файловой переменной. Файл FileVar должен быть открытым.

Функция FilePos возвращает величину целого типа, значение которой равно положению указателя файла FileVar. Номер начальной позиции равен 0, номер последней позиции FileSize (FileVar).

Пример:

Var
FileVar: file of (Red, Green, Blue);
begin
Assign (FileVar,'COLORS');
Reset (FileVar);
Seek (FileSize(FileVar));
Writeln (FilePos(FileVar)=0)
end

Если набор данных COLORS пустой, то после выполнения программы будет выведено сообщение TRUE.

В противном случае будет выведено сообщение FALSE.

 Содержание

На главную страницу
(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz