Читаем Delphi. Учимся на примерах полностью

 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:= Trunc(FileSize(f1)); //узнаем размер файла

  //Отображаем размер файл для пользователя}

  Label4.Caption:= IntToStr(sizez div 1024) + 'Кб’;

  {Создаем второй файл или перезаписываем его, если он уже существует}

  Rewrite(f2);

  while not Eof(f1) do begin //пока не достигнут конец первого файла

   //считываем один байт с первого файла

   BlockRead(f1, cop, 1);

   //записываем один байт во второй файл

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже