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.

Листинг 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

Работа с текстом. Статистика документа

Постановка задачи