With opendialog1, memo1 do

      Комментарии к записи With opendialog1, memo1 do отключены

СРЕДА ПРОГРАММИРОВАНИЯ Turbo DELPHI

Лабораторная работа №5

Тема: «Файлы»

Ассистент Кунина М.В.

Волгоград 2014

Файл — это именованная область данных на диске или любом другом внешнем носителе. В программе файл предстает как последовательность элементов некоторого типа. Так как размер одного файла может превышать объем всей оперативной памяти компьютера, доступ к его элементам выполняется последовательно с помощью процедур чтения и записи.

В зависимости от типа элементов различают три вида файлов:

  • текстовый файл; элементами такого файла являются текстовые строки (текстовые файлы);
  • файл из элементов фиксированного размера; элементами такого файла чаще всего являются записи (типизированные файлы);
  • файл из элементов переменного размера (нетипизированный файл); такой файл рассматривается просто как последовательность байтов.

Файловые типы и файловые переменные

Доступ к файлу осуществляется с помощью переменных файлового типа:

  • TextFile – тестовый файл, представляющий собой набор символьных строк переменной длины;
  • File of– типизированный файл, представляющий собой набор данных указанного типа;
  • File – нетипизированный файл, представляющий собой набор неструктурированных данных.

<p>Например, var f1:textfile; f2:file of integer; f3:file of char; f4:file;

Здесь f1 –текстовый файл, f2 и f3 –типизированные файлы, f4 – нетипизированный файл.

В Delphi поддерживаются все операции с файлами — создание, поиск, чтение и запись, переименование, как файлов, так и директорий. В Delphi существует несколько способов работы с файлами. Классический способ связан с использованием файловых переменных.

Стандартные подпрограммы для доступа к файлам

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

Перед использованием файловой переменной она должна быть связана с внешним файлом с помощью вызова процедуры

AssignFile(,);

Здесь- имя переменной файлового типа, объявленной в программе;– символьная строка, содержащая имя файла.

Если файл находится в одной папке с обрабатывающей его программой, то достаточно указать только имя файла, в противном случае надо указать полный путь к файлу, например,’ D:\STUDENTS\MIB211\z1.txt’.

В этом случае файл будет считываться и записываться туда, куда мы ему указали. Но необходимо также уметь выбрать нужный файл в работающей программе. Delphi предоставляет нам такую возможность. Ниже рассмотрим компоненты, позволяющие в работающей программе осуществлять выбор файлов.

Когда связь с внешним файлом установлена, его можно открыть для ввода или вывода информации. Существующий файл можно открыть с помощью процедуры

Reset();

открывающая существующий внешний файл, имя которого было связано с файловой переменной. Если файл не существует, то возникает ошибка периода исполнения, если файл уже открыт, то он сначала закрывается, а затем открывается вновь. Файловый указатель устанавливается на элемент файла с порядковым номером 0.

!!! Текстовый файл, открытый процедурой reset, доступен только для чтения, для типизированных и нетипизированных файлов, открытых процедурой reset допускается чтение и запись

Новый файл можно создать и открыть для записи с помощью процедуры Rewrite();

Если файл с указанным именем уже существует, то он удаляется и на его месте создается новый пустой файл. Текущая позиция в файле устанавливается на начало файла, т.е. файловый указатель устанавливается на элемент файла с порядковым номером 0.

!!! Если процедура rewrite открывает текстовый файл, то он становится доступным только для записи, для типизированных и нетипизированных файлов, открытых процедурой rewrite допускается чтение и запись

Текстовый файл может быть открыт процедурой Append();

которая открывает уже существующий внешний файл для добавления информации. Если файл не существует, то возникает ошибка периода исполнения, если файл уже открыт, то он сначала закрывается, а затем открывается заново. Файловый указатель устанавливается на конец файла.

После завершения обработки файл должен быть закрыт процедурой CloseFile ();

Процедура closeFile закрывает открытый файл, но не разравает связь с файла с файловой переменной, поэтому его можно открыть без повторного связывания процедурой assignFile.

Процедуры

ERASE(VAR F) уничтожит файл f;

Rename(VAR f; NewName:string) — переименует существующий файл. !!! Перед выполнением этих процедур файл должен быть закрыт.

Для реализации программы чтения и сохранения текстового файла размещаем на форме текстовый редактор Memo, две кнопки Button и для ввода имени файла компонент Edit. Пример см. в папке «Текстовые файлы».

Диалоговые окна

Delphi диалоги выбора файла позволяют указать программе, с каким файлом мы хотим работать. На вкладке палитры компонентов Dialogs находятся компонент Delphi OpenDialog и компонент Delphi SaveDialog. Все Delphi диалоги, находящиеся на этой вкладке, в том числе и Delphi диалоги выбора файла, невизуальные, т.е. при переносе

их на Форму в работающей программе их не видно, они видны только на этапе конструирования. Компонент Delphi OpenDialog позволяет открыть в нашей программе стандартное Windows-окно диалога открытия файла, компонент Delphi SaveDialog -окно диалога сохранения.

Delphi диалоги выбора файла сами по себе ничего не делают, а только предоставляют настройки, сделанные пользователем при выборе файла. Самый важный метод Delphi диалогов – Execute. Он срабатывает в момент нажатия кнопки открыть или сохранить в окне выбора файла.

Компоненты Delphi, которые умеют работать с файлами, т.е. читают и сохраняют своё содержимое, строки типа String, в файл текстового формата. Это компоненты ListBox, ComboBox и Memo, расположенные на вкладке Standard Палитры компонентов. Для примера введём в программу возможность выбора файла для загрузки в редактор Memo, и сохранения его после редактирования.

Размещаем на Форме оба Delphi диалога, текстовый редактор Memo, и три кнопки Button. В свойство Caption одной из них записываем Открыть…, другой -Сохранить, третьей — Сохранить как…

В обработчике OnClick кнопки Открыть… пишем:

if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

В результате выбора файла свойство FileName компонента OpenDialog получает значение полного адреса выбранного файла, который мы и вставляем в функцию загрузки файла компонента Memo.

Если программа использует несколько раз выражение OpenDialog1.FileName, то в Delphi для такого случая есть так называемый оператор присоединения with. Он используется для любых объектов, имеющих длинный хвост из свойств, которые приходится записывать многократно. Вот как он записывается:

With Объект do begin

end;

Перепишем фрагмент загрузки файла с использованием оператора присоединения:

with OpenDialog1, Memo1 do

if Execute then Lines.LoadFromFile(FileName);

Так как свойства компонентов OpenDialog и SaveDialog одинаковы, сохранение текста выглядит абсолютно аналогично. Создаём обработчик нажатия кнопки Сохранить как… и пишем:

Статьи к прочтению:

delphi_lesson.avi


Похожие статьи:

  • With savedialog1, memo1 do if execute then

    begin Lines.SaveToFile(FileName); OpenDialog1.FileName:=FileName; // Чтобы исправленный текст не затёр источник end; Наконец, для кнопки Сохранить пишем:…

  • Выводим результат в окно memo1

    Memo1.Lines.Add(‘ Результат S = ‘+FloatToStrF(s,fffixed,8,3)); end; end. 1.4. Индивидуальные задания По указанию преподавателя выберите индивидуальное…