- •Лабораторная работа № 6
- •Лабораторная работа 7
- •1. Домашнее задание
- •Лабоаторная работа №8
- •Лабораторная работа № 9 Работа с массивами в среде программирования «Delphi»
- •1. Теоретическая часть Реакция на события от мыши и клавиатуры
- •Интерфейс Drag&Drop
- •2. Лабораторные задания и методические указания по их выполнению
- •Лабораторная работа № 10
- •1. Теоретическая часть
- •Доступ к файлам
- •Подпрограммы для работы с файлами
- •Текстовые файлы
- •Подпрограммы для работы с текстовыми файлами
- •Подпрограммы для работы с типизированными файлами
- •TOpenDialog и tSaveDialog
- •2. Лабораторные задания и методические указания по их выполнению
- •394026 Воронеж, Московский просп., 14
Подпрограммы для работы с типизированными файлами
Function Read (var F, V1,...,Vn); |
Читает данные из типизированного файла F: Vi - переменные такого же типа, что и компоненты файла. |
Function Write (var F, V1,...,Vn); |
Записывает данные в типизированный файл F: Vi - переменные такого же типа, что и компоненты файла. |
Function Seek (var F; H: Longint); |
Смещает указатель файла F к требуемому компоненту: N - номер компонента файла (первый компонент файла имеет номер0). |
Function FileSize (var F): Longint; |
Возвращает количество компонентов файла. Чтобы переместить указатель в конец типизированного файла, можно написать: seek (FileVar, FileSize(FileVar)); |
Function FilePos (var F); Longint; |
Возвращает текущую позицию в файле, т.е. номер компонента, который будет обрабатываться следующей операцией ввода-вывода. |
TOpenDialog и tSaveDialog
Эти компоненты имеют идентичные свойства и поэтому рассматриваются вместе.
Свойство FileName: String содержит маршрут поиска и выбранный файл при успешном завершении диалога. Программа может использовать это свойство для доступа к файлу с целью читать из него данные (TOpenDialog) или записывать в него (TSaveDialog). Следует отметить, что пользователь может ввести произвольное имя и, следовательно, указать несуществующий файл. Для записи это не имеет значения, но при
чтении отсутствие файла может привести к краху программы. Чтобы избежать этого, можно проверить существование файла глобальной функцией FileExists, или использовать механизм обработки исключительных
34
ситуаций.
Свойство Filter: String используется для фильтрации (отбора) файлов, показываемых в диалоговом окне. Это свойство можно устанавливать с помощью специального редактора или программно. Для доступа к редактору достаточно щелкнуть по кнопке в строке Filter окна Инспектора Объектов. При программном вводе фильтры задаются одной длинной строкой, в которой символы "|" служат для разделения фильтров друг от друга, а также для разделения описания фильтруемых файлов от соответствующей маски выбора. Например, оператор
OpenDialog1.Filter:= 'Текстовые файлы|*.txt|Файлы Паскаля|*.pas';
задает две маски - для отбора файлов с расширениями PAS и ТХТ.
Установить начальный каталог позволяет свойство InitialDir: String. Например:
OpenDialog1.InitialDir := 'с:\program files\borland\delphi 3\source';
С помощью свойства DefaultExt: String[3] формируется полное имя файла, если при ручном вводе пользователь не указал расширение. В этом случае к имени файла прибавляется разделительная точка и содержимое этого свойства.
В диалоговом окне для ручного ввода предусмотрен элемент TEdit, который при желании можно заменить на TComboBox. Для этого необходимо свойству FileEditStyle придать значение fsComboBox вместо умалчиваемого fsEdit. Если выбран комбинированный список, с ним можно связать протокол выбора имен. Для этого используется свойство HistoryList: Tstrings, содержимое которого будет появляться в выпадаю
щем списке. Этот список не пополняется автоматически, поэтому за его содержимым должна следить программа. Например:
if OpenDialogI.Execute then
begin
HistoryList.Add(OpenDialog1, FileName);
..................
end;
Настройка диалога может варьироваться с помощью свойства
TOpenOption = (of Readonly, ofOverwritePrompt,
ofHideReadOnly, ofNoChangeDir, ofShowHelp, ofHoValidate,
ofAllowMultiSelect, ofExtensionDifferent, ofPathMustExist,
ofFileMustExist, ofCreatePrompt, ofShareftware,
ofNoReadOnlyReturn, ofNoTestFileCreate,
ofNoNetworkButton, ofNoLongHames, ofOldStyleDiaiog,
ofNoDereferenceLinks);
TOpenOptions = set of TOpenOption;
property Options: TOpenOptions;
Значения этого свойства имеют следующий смысл:
ofReadOnly |
Устанавливает переключатель Только для чтения. |
ofOverwritePrompt |
Требует согласия пользователя при записи в существующий файл. |
35
ofHideReadOnly |
Прячет переключатель Только для чтения. |
ofNoChangeDir |
Запрещает смену каталога. |
ofShowHelp |
Включает в окно кнопку Help. |
ofNoValidate |
Запрещает автоматическую проверку правильности набираемых в имени файла символов. |
ofAliowMultiSelect |
Разрешает множественный выбор файлов. |
ofExtensionDifferent |
При завершении диалога наличие этого значения в свойстве Options говорит о том, что пользователь ввел расширение, отличающееся от умалчиваемого. |
ofPathMustExist |
Разрешает указывать файлы только из существующих каталогов. |
ofFileMustExist |
Разрешает указывать только существующие файлы. |
ofCreatePrompt |
Требует подтверждения для создания несуществующего файла. |
ofShareAware |
Разрешает выбирать файлы, используемые другими параллельно выполняемыми программами. |
ofNoReadOnlyReturn |
Запрещает выбор файлов, имеющих атрибут Только для чтения. |
ofNoTestFileCreate |
Запрещает проверку доступности сетевого или локального диска. |
ofNoNetworkButton |
Запрещает вставку кнопки для создания сетевого диска. |
ofNoLongHames |
Запрещает использование длинных имен файлов. |
ofOldStyleDialog |
Создает диалог в стиле Windows 3.х. |