ВУЗ:
Составители:
Рубрика:
29
13. Сформировать текстовый файл, каждая запись которого содержит
5 чисел, разделенных пробелами. Определить минимальное число для каждой
записи.
14. Из текстового файла А сформировать текстовый файл В, в который
включать только нечетные числа.
15. В текстовом файле f заменить название города Ленинград на
Санкт-Перегбург во всех записях.
16. Из текстового файла А сформировать текстовый файл Б, в котрый
включать только собственные имена из каждой записи файла А.
Типизированные файлы и операции ввода - вывода
Типизированный или компонентный файл — это файл с объявлен-
ным типом его компонентов, т.е. файл с наборами данных одной и той же
структуры. Как и в стандарте Паскаля, объявление такого файлового типа
имеет структуру:
Описание типизированного файла:
где компонент файла может иметь любой ординарный или структурирован-
ный тип, базовый или построенный программистом. Запрещено лишь
объявлять файлы файлов и файлы объектов, а так же файлы структурирован-
ных компонентов (массивов, записей и др.), содержащих те же файлы или
объекты. Так, допустимы следующие объявления:
type
DimComp=Array [1.. 100,1.. 2] of Real;
RecComp=RECORD
X,Y: Byte;
A:DimComp;
end;
DimFile=File of DimComp;
RecFile=File of RecComp;
IntFile=File of Integer;
File
o
f
Тип компонент
;
30
Но компилятор не пропустит такие типы:
type
FileFile1=File of File of Real; {неверно: файл файлов}
FileFile2=File of DimFile; {неверно: файл файлов}
FreeComp=RECORD
X,Y:Byte;
F:File of Char;
end;
FRecFile=File of FreeComp; {нельзя: файл в компоненте!}
ObjComp=Object
…
end;
ObjFile=File of ObjComp; {неверно: файл объектов}
При написании программ необязательно определять специальные фай-
ловые типы. Это можно сделать “по ходу” при описании переменных:
var
FR: File of Real;
FD: File of DimComp;
Для работы с объявленным файлом необходимы обычные предвари-
тельные действия: связывание файловой переменной с физическим файлом и
открытие файла для чтения или записи, например:
Assign (FR, ′RFILE.DAT′):Reset(FR);
Assign (FD, ′DFILE.DAT′):Rewrite(FD);
Для типизированных файлов обе процедуры Reset и Rewrite устанав-
ливают режим “чтение/запись” в соответствии со значением
предопределенной системной переменной FileMode (оно по умолчанию равно
2), т.е. независимо от выбора процедуры открытия, файл открывается и для
чтения, и для записи. Это верно только для типизированных и бестиповых
файлов, но ни в коем случае, не для текстовых. Этот порядок нарушится
только в том случае, когда значение FileMode соответствует режиму “только
запись” (1) или “только чтение” (0). Сменить режим можно простым при-
сваиванием нужного значения переменной FileMode перед открытием файла.
После этого вызов Reset будет открывать файл в заданном режиме, даже если
он будет “только запись”. Процедура Rewrite также должна “слушаться” ука-
заний FileMode, но только в том случае, когда файл уже существует. Для
новых файлов Rewrite всегда включает режим “чтение/запись”.
13. Сформировать текстовый файл, каждая запись которого содержит Но компилятор не пропустит такие типы: 5 чисел, разделенных пробелами. Определить минимальное число для каждой type записи. FileFile1=File of File of Real; {неверно: файл файлов} 14. Из текстового файла А сформировать текстовый файл В, в который FileFile2=File of DimFile; {неверно: файл файлов} включать только нечетные числа. FreeComp=RECORD X,Y:Byte; 15. В текстовом файле f заменить название города Ленинград на F:File of Char; Санкт-Перегбург во всех записях. end; 16. Из текстового файла А сформировать текстовый файл Б, в котрый FRecFile=File of FreeComp; {нельзя: файл в компоненте!} включать только собственные имена из каждой записи файла А. ObjComp=Object end; Типизированные файлы и операции ввода - вывода ObjFile=File of ObjComp; {неверно: файл объектов} При написании программ необязательно определять специальные фай- Типизированный или компонентный файл это файл с объявлен- ловые типы. Это можно сделать по ходу при описании переменных: ным типом его компонентов, т.е. файл с наборами данных одной и той же структуры. Как и в стандарте Паскаля, объявление такого файлового типа var имеет структуру: FR: File of Real; FD: File of DimComp; Описание типизированного файла: Для работы с объявленным файлом необходимы обычные предвари- тельные действия: связывание файловой переменной с физическим файлом и File of Тип компонент ; открытие файла для чтения или записи, например: Assign (FR, ′RFILE.DAT′):Reset(FR); Assign (FD, ′DFILE.DAT′):Rewrite(FD); где компонент файла может иметь любой ординарный или структурирован- ный тип, базовый или построенный программистом. Запрещено лишь Для типизированных файлов обе процедуры Reset и Rewrite устанав- объявлять файлы файлов и файлы объектов, а так же файлы структурирован- ливают режим чтение/запись в соответствии со значением ных компонентов (массивов, записей и др.), содержащих те же файлы или предопределенной системной переменной FileMode (оно по умолчанию равно объекты. Так, допустимы следующие объявления: 2), т.е. независимо от выбора процедуры открытия, файл открывается и для чтения, и для записи. Это верно только для типизированных и бестиповых type файлов, но ни в коем случае, не для текстовых. Этот порядок нарушится DimComp=Array [1.. 100,1.. 2] of Real; только в том случае, когда значение FileMode соответствует режиму только RecComp=RECORD X,Y: Byte; запись (1) или только чтение (0). Сменить режим можно простым при- A:DimComp; сваиванием нужного значения переменной FileMode перед открытием файла. end; После этого вызов Reset будет открывать файл в заданном режиме, даже если DimFile=File of DimComp; он будет только запись. Процедура Rewrite также должна слушаться ука- RecFile=File of RecComp; заний FileMode, но только в том случае, когда файл уже существует. Для IntFile=File of Integer; новых файлов Rewrite всегда включает режим чтение/запись. 29 30
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »