Скопировать файл с заполнением своего ProgressBaraDelphi , Файловая система , ФайлыСкопировать файл с заполнением своего ProgressBaraАвтор: Xavier Pacheco { Copyright © 1999 by Delphi 5 Developer's Guide - Xavier Pacheco and Steve Teixeira } unit MainFrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Gauges; type TMainForm = class(TForm) prbCopy: TProgressBar; btnCopy: TButton; procedure btnCopyClick(Sender: TObject); end; var MainForm: TMainForm; implementation {$R *.DFM} procedure TMainForm.btnCopyClick(Sender: TObject); var SrcFile, DestFile: file; BytesRead, BytesWritten, TotalRead: Integer; Buffer: array[1..500] of byte; FSize: Integer; begin { Assign both the source and destination files to their respective file variables } AssignFile(SrcFile, 'srcfile.tst'); AssignFile(DestFile, 'destfile.tst'); // Open the source file for read access. Reset(SrcFile, 1); try // Open destination file for write access. Rewrite(DestFile, 1); try { Encapsulate this into a try..except so that we can erase the file if an error occurs. } try // Initialize total bytes read to zero. TotalRead := 0; // Obtain the filesize of the source file FSize := FileSize(SrcFile); { Read SizeOf(Buffer) bytes from the source file and add these bytes to the destination file. Repeat this process until all bytes have been read from the source file. A progress bar is provided to show the progress of the copy operation. } repeat BlockRead(SrcFile, Buffer, SizeOf(Buffer), BytesRead); if BytesRead > 0 then begin BlockWrite(DestFile, Buffer, BytesRead, BytesWritten); if BytesRead <> BytesWritten then raise Exception.Create('Error copying file') else begin TotalRead := TotalRead + BytesRead; prbCopy.Position := Trunc(TotalRead / Fsize) * 100; prbCopy.Update; end; end until BytesRead = 0; except { On an exception, erase the destination file as it may be corrupt. Then re-raise the exception. } Erase(DestFile); raise; end; finally CloseFile(DestFile); // Close the destination file. end; finally CloseFile(SrcFile); // Close the source file. end; end; end. Here's a translation of the content into Russian: Главная форма Главная форма ( Процедура копирования файла Процедура
Замечания
Альтернативное решение Вместо использования функций Delphi
Код использует объект В статье описывается способ копирования файла с помощью ProgressBar, демонстрируя процесс чтения и записи файлов с использованием Progress Bar в Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |