Скачать презентацию Record и File Выполнил Студент группы 4 О-110 Скачать презентацию Record и File Выполнил Студент группы 4 О-110

Record,File Козлов Вячеслав 4О-110Б.pptx

  • Количество слайдов: 12

Record и File Выполнил: Студент группы 4 О-110 Б Козлов Вячеслав Источник: В. В. Record и File Выполнил: Студент группы 4 О-110 Б Козлов Вячеслав Источник: В. В. Фаронов Delphi 6 Учебный курс Издатель Молгачёва С. В. Москва 2001

Record(Запись) Запись-это структура данных, состоящая фиксированного количества компонентов , называемых полями записи. В отличие Record(Запись) Запись-это структура данных, состоящая фиксированного количества компонентов , называемых полями записи. В отличие от массива компоненты(поля) записи могут быть различного типа. Чтобы было можно ссылаться на тот или иной компонент записи, поля именуются. Структура объявления типа записи такова: <имя типа> = record < сп. полей > end; Здесь <имя типа> - правильный идентификатор ; record , end –зарезервированные слова(запись, конец); < сп. полей > - список полей; представляет собой последовательность разделов записи; между которыми ставится точка с запятой.

Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга запятыми. За идентификатором (идентификаторами) ставится двоеточие и описание типа поля (полей), например: type Birth. Day = record Day, Month: Byte; Year : Word end; var b : Birthday; В этом примере тип Birth. Day (день рождения) есть запись с полями Day, Month и Year (день, месяц и год)-, переменные A и B содержат записи типа Birth. Day. Как и в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например а : = Ь; К каждому из компонентов записи можно получить доступ, если использовать составное имя, т. е. указать имя переменной, затем точку и имя поля: day : = 27; year : = 1939;

Для вложенных полей приходиться продолжать уточнения: type Birth. Day = record Day, Month: Byte; Для вложенных полей приходиться продолжать уточнения: type Birth. Day = record Day, Month: Byte; Year : Word end; var с : record Name : String; Bd : Birth. Day end; begin ………. . if c. Bd. Year = 1989 then. . . end.

Чтобы упростить доступ к полям записи, используется оператор присоединения with: with <переменная> do <оператор>; Чтобы упростить доступ к полям записи, используется оператор присоединения with: with <переменная> do <оператор>; Здесь with, do - зарезервированные слова (с, делать)', <переменная> - имя переменной типа запись, за которой, возможно, следует список вложенных полей; <оператор> - любой оператор Object Pascal. Например: с. Bd. Month : = 9; Это эквивалентно with c. Bd do Month : = 9; ИЛИ with с do with Bd do Month : = 9; ИЛИ with c, Bd do Month : = 9;

File(файл) Под файлом понимается именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, диска File(файл) Под файлом понимается именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, диска CD-ROM). Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Object Pascal, кроме файлов. Иными словами, нельзя создать «файлов» . В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

Файловый тип можно задать одним из трех способов: <имя> = File of <тип>; <имя> Файловый тип можно задать одним из трех способов: <имя> = File of <тип>; <имя> = Text. File; <имя> = File; Здесь <имя> - имя файлового типа (правильный идентификатор); File, of зарезервированные слова (файл, из); Text. File - имя стандартного типа текстовых файлов; <тип> - любой тип Object Pascal, кроме файлов. Например: type Product = record Name: String; Code: Word; Cost: Comp end; Text 80 = File of String[80]; var FI: File of Char; F 2: Text. File; F 3: File; F 4: Text 80; F 5: File of Product;

В зависимости от способа объявления можно выделить три вида файлов: типизированные файлы (задаются предложением В зависимости от способа объявления можно выделить три вида файлов: типизированные файлы (задаются предложением File of. . . ); текстовые файлы (определяются типом Text. File); нетипизированные файлы (определяются типом File). В наших примерах F 1, F 4 и F 5 - типизированные файлы, F 2 - текстовый файл, F 3 - нетипизированный файл.

ТЕКСТОВЫЕ ФАЙЛЫ Текстовые файлы связываются с файловыми переменными, принадлежащими к стандартному типу Text. Fiie. ТЕКСТОВЫЕ ФАЙЛЫ Текстовые файлы связываются с файловыми переменными, принадлежащими к стандартному типу Text. Fiie. Текстовые файлы предназначены для хранения текстовой информации. Именно в такого типа файлах хранятся, например, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними. Текстовый файл трактуется в Object Pascal как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой строки ставится специальный признак EOLN (End Of Line - конец строки), а в конце всего файла - признак EOF (End Of File - конец файла).

ТИПИЗИРОВАННЫЕ ФАЙЛЫ Длина любого компонента типизированного файла строго постоянна, что дает возможность организовать прямой ТИПИЗИРОВАННЫЕ ФАЙЛЫ Длина любого компонента типизированного файла строго постоянна, что дает возможность организовать прямой доступ к каждому из них (т. е. доступ к компоненту по его порядковому номеру). Перед первым обращением к процедурам ввода-вывода указатель файла стоит в его начале и указывает на первый компонент с номером 0. После каждого чтения или записи указатель сдвигается к следующему компоненту файла. Переменные в списках ввода-вывода должны иметь тот же тип, что и компоненты файла. Если этих переменных в списке несколько, указатель будет смещаться после каждой операции обмена данными между переменными и дисковым файлом.

НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ Нетипизированные файлы объявляются как файловые переменные типа File и отличаются тем, что НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ Нетипизированные файлы объявляются как файловые переменные типа File и отличаются тем, что для них не указан тип компонентов. Отсутствие типа делает эти файлы, с одной стороны, совместимыми с любыми другими файлами, а с другой - позволяет организовать высокоскоростной обмен данными между диском и памятью. При инициации нетипизированного файла процедурами Reset или Rewrite можно указать длину записи нетипизированного файла в байтах. Например, так: var F: File; begin ……… Assign. File(F, ‘ myfile. dat ‘ ); Reset(f, 512); ………. end.

Длина записи нетипизированного файла указывается вторым параметром при обращении к процедурам Reset или Rewrite, Длина записи нетипизированного файла указывается вторым параметром при обращении к процедурам Reset или Rewrite, в качестве которого может использоваться выражение типа Longlnt. Если длина записи не указана, она принимается равной 128 байтам. Object Pascal не накладывает каких-либо ограничений на длину записи нетипизированного файла за исключением требования положительности и ограничения максимальной длины 2 Гбайт. Для обеспечения максимальной скорости обмена данными рекомендуется задавать длину, которая была бы кратна длине физического сектора дискового носителя информации (512 байт). Однако операции обмена данными с дисковыми устройствами в среде Windows кэшируются, т. е. осуществляются через промежуточный буфер памяти, поэтому обычно задают Rec. Size = 1, что позволяет обмениваться с файлом блоками любой длины начиная с одного байта.