Основы алгоритмизации и программирования. Часть четвертая. Файловая система Turbo Pascal. Асламова В.С - 15 стр.

UptoLike

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