Книга: Delphi. Учимся на примерах

Полный исходный код модуля

Полный исходный код модуля

Полный код модуля программы Работа с файлами представлен в листинге 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.

Оглавление книги


Генерация: 0.040. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз