Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Delphi диалоги выбора файла позволяют указать программе с каким файлом мы хотим работать

Работа добавлена на сайт samzan.net: 2015-12-26

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

Работа с текстовыми файлами с помощью диалога

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

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

При работе этих фрагментов можно заметить, что выбирать приходится из всех файлов в нужной директории. Удобнее видеть только, например, текстовые файлы, или другой тип файлов по нашему выбору. Для этого используются фильтры, свойство Filter в наших компонентах. Настраивается оно в Инспекторе Объектов. При выборе его можно перейти в редактор фильтров:



В колонке
FilterName записываем имена фильтров, в колонке Filter - список масок файлов, разделённых точкой с запятой. Маска файла в данном случае выглядит как

    *. расширение_файла;

Звёздочка означает, что выбираются файлы с любыми именами, подходящие по расширению.


   Свойство Delphi диалогов
Title позволяет записать в заголовок нужную нам фразу. Если оставить его пустым, то в заголовке будут стандартные "открыть" или "сохранить"
   Свойство
InitialDir позволяет в момент открытия оказаться в нужной нам директории. Оно доступно как на этапе "конструирования", так и программно.

Задания

Пример 1

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

  1.  Вывод данных в текстовый файл

Для начала, на форму нужно поместить компонент "SaveDialog". Свойству "DefaultExt" присвоить значение "TextFile"; Свойству "Фильтр" присвоить значение как на рисунке:

Для кнопки «Сохранить файл» набрать процедуру:

procedure TForm1.Button2Click(Sender: TObject);

var f:TextFile;

begin

   If SaveDialog1.Execute then

begin

AssignFile(f,SaveDialog1.FileName);

Rewrite(f);

Writeln(f,'Ваши данные');

CloseFile(f);

end;

end;

  1.  Чтение данных из текстового файла


На форму нужно поместить компонент "OpenDialog". Свойству "DefaultExt" присвоить значение "TextFile"; Свойству "Фильтр" присвоить значение как в предыдущем примере
Для кнопки «Открыть файл» набрать процедуру:

procedure TForm1.Button1Click(Sender: TObject);

 var f:TextFile;

s:string;

begin

 If OpenDialog1.Execute then

begin

AssignFile(f,OpenDialog1.FileName);

Reset(f);

Readln(f,s);

  label1.Caption:=s;

  memo1.Lines.Add(s);

CloseFile(f);

end;

end;

Самостоятельное задание

Вводить данные в Мемо и записывать их в файл при нажатии на кнопку «Сохранить файл».

Пример 2.   

Итак, располагаем на Форме оба 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;

Свойства Объекта внутри логических скобок
begin/end можно записывать непосредственно. Допускается перечислять через запятую несколько объектов. Естественно, в случае, когда внутри скобок находится один оператор, они необязательны. Перепишем фрагмент загрузки файла с использованием оператора присоединения:

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

Запись получается более компактной.

Создаём обработчик нажатия кнопки "Сохранить как..." и пишем:

   
with SaveDialog1, Memo1 do
      
if Execute then
        
begin
           Lines.SaveToFile(FileName);
           OpenDialog1.FileName:=FileName; // Чтобы исправленный текст не затёр источник
        
end;

Наконец, для кнопки "
Сохранить" пишем:

   Memo1.Lines.SaveToFile(OpenDialog1.FileName); // Сохраняем туда, откуда считали




1. ГХК ЗАЯВКА НА УЧАСТИЕ В БЛАГОТВОРИТЕЛЬНОМ КОНКУРСЕ СОЦИАЛЬНЫХ ПРОЕКТОВ ГХК ТОП202013
2. КУРСОВОЙ ПРОЕКТ по дисциплине Строительные конструкции ПРОЕКТИРОВАНИЕ НЕСУЩИХ ЖЕЛЕЗ
3. тема России В большинстве стран этот вопрос дискуссируется очень остро
4. ВВЕДЕНИЕ ОБО МНЕ Я трахал мексикакок я трахал индианок я трахал урожденную канадскую индианку я траха
5. тема ізольована або момент зовнішніх сил дорівнює нулю- то момент імпульсу системи
6. 11 1Иоан.2-12 Сие пишу вам чтобы вы не согрешали а если кто согрешит то мы имеем Ходатая пред Отцом Иисус
7. Оценка готовности детей дошкольного возраста к обучению в школе
8. Этика это философская дисциплина изучающая мораль и нравственность и определяющая присущуб данному общес
9. Кроме пистолета мне больше ничего не надо Теплый осенний день 1 сентября
10. Ш Уалиханова Перечень экзаменационных вопросов по дисциплине ИСТОРИЯ КАЗАХ
11. Fascismul - simbolulu negru al secolului XX
12. Нижегородский государственный педагогический университет имени Козьмы Минина Мининский университет
13. Продтовары зарегистрировано Брестским областным исполнительным комитетом 28
14. Дхармы
15. Машинная память
16. Дэвид решил что он важнее Алекса Фергюсона
17. Тема XXIII Культура в 1917 ~ 1928 гг.
18. ЗАДАНИЕ 1
19. Реферат- История возникновения фамилии
20. Физические нагрузки у юных спортсменов