Delphi. Учимся на примерах [Сергей Михайлович Парижский] (fb2) читать постранично, страница - 3
[Настройки текста] [Cбросить фильтры]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (50) »
⇘ Различные конструкции языка Object Pascal (комментарии, операторы ветвления, обработка исключений и др.) рассматриваются в приложении Г.Эта процедура будет использоваться при копировании и переносе файлов. Сначала мы открываем файлы, которые выбрал пользователь, а затем проверяем, не было ли ошибок при их открытии. Если ошибок не было, то отображаем пользователю размер исходного файла и начинаем считывать байты из первого файла, записывая их во второй. Если копирование завершено и ошибок при этом не произошло, то отображаем сообщение об успешном окончании копирования. Процедура doit вызывается при нажатии кнопки Копировать: procedure TForm1.Button1Click{Sender: TObject); begin doit; end; По нажатию кнопки Вырезать должно происходить обычное копирование с последующим удалением скопированного файла: procedure TForm1.Button5Click(Sender: TObject); begin doit;//копируем DeleteFile(from.Text); //удаляем исходный файл end; Теперь создадим процедуры выбора и сохранения файла с помощью стандартных диалоговых окон. Для выбора первого (исходного) файла следует создать следующий обработчик события OnClick (кнопке Button2 соответствует поле from): procedure TForm1.Button2Click(Sender: TObject); begin if Open1.Execute then from.Text:= Open1.FileName else ShowMessage('Файл не был открыт'); end; При нажатии кнопки Обзор открывается диалоговое окно выбора файла (Open1.Execute). Если в этом окне пользователь нажал кнопку Отмена (Open1.Execute = False), то сообщаем ему об этом и не выполняем никаких действий. Если пользователь выбрал файл, то копируем путь к нему в соответствующее поле ввода. Создадим аналогичный обработчик события для выбора пути назначения при копировании первого файла (кнопке Button3 соответствует поле where): procedure TForm1.Button3Click(Sender : TObject); begin if Save1.Execute then where.Text:= Save1.FileName else ShowMessage('Вы не выбрали место длясохранения файла!'); end; Здесь выполняется та же проверка, что и в предыдущем случае. Затем выбранный путь заносится в соответствующее поле ввода, чтобы его, при желании, можно было откорректировать. Теперь создадим аналогичный обработчик события OnClick для кнопки Обзор, используемой для выбора размещения удаляемого файла : procedure TForm1.Button4Click(Sender: TObject); begin if Open1.Execute then Del.Text:= Open1.FileName else ShowMessage('Файл не был открыт!'); end; Сама кнопка Удалить выполняет при нажатии следующий код: procedure TForm1.Button6Click(Sender: tobject); begin DeleteFile(Del.Text); //удаляем файл if not FileExists(Del.Text)//проверяем существование файла then ShowMessage('Файл удален!'); //выводим сообщение end; Сначала мы удаляем файл, а затем проверяем, существует ли он на диске после выполнения операции удаления. Если его не существует, то выводим сообщение об успешном удалении файла. Теперь можно откомпилировать и запустить программу на выполнение. Внешний вид окна Работа с файлами в действии показан на рис. 2.2. Рис. 2.2. Программа Работа с файлами в действии
Полный исходный код модуля
Полный код модуля программы Работа с файлами представлен в листинге 2.1.Листинг 2.1. Модуль программы Работа с файлами
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ShellAPI, Gauges; type TForm1 = class(TForm) from: TEdit; where: TEdit; Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Button2: TButton; Button3: TButton; Open1: TOpenDialog; Save1: TSaveDialog; Button4: TButton; del: TEdit; Button5: TButton; Button6: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button6Click(Sender: TObject); private { Private declarations } procedure doit; //объявление процедуры doit public { Public declarations } end;var Form1: TForm1;
implementation {$R *.dfm}
procedure Tform1.doit(); var f1, f2: file of byte; //работа с первым и вторым файлом сор: byte; //для побайтового копирования sizez: longint; //хранит размер файла begin {I-} {отключаем директиву, которая следит за ошибками ввода/вывода} try //связываем Файловую переменную f1 с первым файлом AssignFile(f1, from.Text); //связываем файловую переменную f2 со вторым файлом AssignFile(f2, where.Text); Reset(f1); //открываем первый файл на чтение sizez:=
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (50) »
Последние комментарии
4 часов 28 минут назад
5 часов 57 минут назад
6 часов 53 минут назад
1 день 5 часов назад
1 день 5 часов назад
1 день 6 часов назад