Delphi. Учимся на примерах - страница 4
>
>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.
>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:= Trunc(FileSize(f1)); //узнаем размер файла
> //Отображаем размер файл для пользователя}
> Label4.Caption:= IntToStr(sizez div 1024) + 'Кб’;
> {Создаем второй файл или перезаписываем его, если он уже существует}
> Rewrite(f2);
> while not Eof(f1) do begin //пока не достигнут конец первого файла
> //считываем один байт с первого файла
> BlockRead(f1, cop, 1);
> //записываем один байт во второй файл
> BlockWrite(f2, cop, 1);
> end;
> CloseFile(f1);//закрываем первый файл
> CloseFile(f2);// закрываем второй файл
> finally;
> end;
> if IOResult <> 0 //Если возникла ошибка ввода-вывода
> then MessageDlg('Ошибка при копировании файла!', mtError, [mbOk] , 0) //сообщение об ошибке
> else begin
> {если ошибок не было, то выводим окно об успешном окончании копирования}
> ShowMessage('Успешно скопировано!');
> end;
>end;
>procedure TForm1.ButtonlClick(Sender: TObject);
>begin
> doit;
>end;
>procedure TForm1.Button2Click(Sender: TObject);
>begin
> if Open1.Execute then from.Text := Open1.FileName
> else ShowMessage('Файл не был открыт');
>end;
>procedure TForm1.Button3Click(Sender: TObject);
>begin
> if Save1.Execute then where.Text:= Save1.FileName
> else ShowMessage(''Вы не выбрали место для сохранения файла!');
>end;
>procedure TForm1.Button5Click(Sender: TObject);
>begin
> doit;
> DeleteFile(from.Text); //удаляем исходный файл
>end;
>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;
>end.
⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter_02.
Глава 3
Работа с текстом. Статистика документа
Постановка задачи