Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Служба Рассылок Subscribe.Ru
Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 10.11.01 09:04

Кое-что из нашей кладовки   |x|
Лучшее из нашего FAQ   |x|
Копирование файлов

Копирование методом TurboPascal


Type
TCallBack=procedure (Position,Size:Longint); {Для индикации процесса копирования}

procedure FastFileCopy(Const InfileName, OutFileName: String; CallBack: TCallBack);
Const BufSize = 3*4*4096; { 48Kbytes дает прекрасный результат }
Type
PBuffer = ^TBuffer;
TBuffer = array [1..BufSize] of Byte;
var
Size : integer;
Buffer : PBuffer;
infile, outfile : File;
SizeDone,SizeFile: Longint;
begin
if (InFileName <> OutFileName) then
begin
buffer := Nil;
AssignFile(infile, InFileName);
System.Reset(infile, 1);
try
SizeFile := FileSize(infile);
AssignFile(outfile, OutFileName);
System.Rewrite(outfile, 1);
try
SizeDone := 0; New(Buffer);
repeat
BlockRead(infile, Buffer^, BufSize, Size);
Inc(SizeDone, Size);
CallBack(SizeDone, SizeFile);
BlockWrite(outfile,Buffer^, Size)
until Size < BufSize;
FileSetDate(TFileRec(outfile).Handle,
FileGetDate(TFileRec(infile).Handle));
finally
if Buffer <> Nil then Dispose(Buffer);
System.close(outfile)
end;
finally
System.close(infile);
end;
end else
Raise EInOutError.Create('File cannot be copied into itself');
end;

Копирование методом потока

Procedure FileCopy(Const SourceFileName, TargetFileName: String);
Var
S,T : TFileStream;
Begin
S := TFileStream.Create(sourcefilename, fmOpenRead );
try
T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);
try
T.CopyFrom(S, S.Size ) ;
FileSetDate(T.Handle, FileGetDate(S! Handle));
finally
T.Free;
end;
finally
S.Free;
end;
end;

Копирование методом LZExpand

uses LZExpand;
procedure CopyFile(FromFileName, ToFileName : string);
var
FromFile, ToFile: File;
begin
AssignFile(FromFile, FromFileName);
AssignFile(ToFile, ToFileName);
Reset(FromFile);
try
Rewrite(ToFile);
try
if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle)<0 then
raise Exception.Create('Error using LZCopy')
finally
CloseFile(ToFile);
end;
finally
CloseFile(FromFile);
end;
end;

Копирование методами Windows

uses ShellApi; // !!! важно

function WindowsCopyFile(FromFile, ToDir : string) : boolean;
var F : TShFileOpStruct;
begin
F.Wnd := 0; F.wFunc := FO_COPY;
FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
result:=ShFileOperation(F) = 0;
end;
// пример копирования
procedure TForm1.Button1Click(Sender: TObject);
begin
if not WindowsCopyFile('C:\UTIL\ARJ.EXE', GetCurrentDir) then
ShowMessage('Copy Failed');
end;



»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
  • Создать help - файл
    Уважаемые мастера!
  • Дерево Хаффмана
    Не подскажет ли кто на пальцах (или ссылочкой) алгоритм посторения дерева кодов Хаффмана? Не само кодирование, а только ...
  • Помогите разработать БД
    Совсем уже запутался. Если кому не влом - help.
  • Экспорт базы в Excel
    Нужно кидать данные в Excel с помощью компонентов с закладки Servers. Хелпа по ним у меня нет (Наверно Дельфи кривая).
  • Параллельный порт
    Господа знатоки, а как записать Integer в паралельный порт и (для отладки и проверки) прочитать его оттуда?
  • Поиск по любой части
    В Access есть поисковик с различными опциями поиска по целому, с начала, по любой части поля. А как подобное ...
  • Помогите разработать БД
    Совсем уже запутался. Если кому не влом - help.
У нас большой выбор статей   |x|
Как сделать WebBrowser средствами Delphi 5.
Я все время натыкался на вопросы о компоненте TWebBrowser. Сначала я думал, что все просто, но когда самому понадобилось написать приложение с использованием TwebBrowser… оказалось, что не все так просто!
Новинки книжного рынка   |x|
Delphi 6. Базы данных и приложения
В книге предпринята попытка дать читателю целостное представление о процессе разработки программного обеспечения для реляционных баз данных.
В рамках поставленной цели авторами решены следующие задачи: рассмотрены основы языка Object Pascal на примере создания консольных приложений; рассмотрены объектно-ориентированные возможности языка Object Pascal и технология визуального программирования; описаны основные принципы работы с SQL-ссрвером InterBase; изложена методика взаимодействия программ, созданных в среде Delphi, с базами данных различного типа, в частности, SQL-сервером InterBase: рассмотрены основы проектирования баз данных с использованием программы ERwin; описана "методика разработки клиентского приложения для доступа к базам данных с использованием библиотек динамической загрузки, а также популярных программ Word и Excel для создания отчетов. На примере БД "Учебные компьютерные курсы" рассмотрен процесс разработки программного обеспечения, начиная с вопросов проектирования и заканчивая подготовкой отчетов.
Книга может быть использована в качестве основы курса лекции по соответствующей дисциплине.
Книга предназначена для старшеклассников, студентов, аспирантов, преподавателей и пользователей ПК, интересующихся программированием.

Автор: Кандзюба С. "ДиаSoft"
Другие сайты о DELPHI   |x|
Delphi Factory
Сайт посвященный моим прогам
Опрос населения :)
Какой сайт по Delphi лучший?
»»» Королевство Дельфи
»»» Этот сайт
»»» Дельфи. Вокруг да около
»»» Другой
»»» Чем больше, тем лучше!
Журнал "Мастера DELPHI"  |x|
Давно витающая в воздухе нашего сайта идея создания журнала, посвященного всеми нами любимой среде разработки Delphi, похоже, обретает зримую форму. Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
Для души

Хокку дня
И осенью хочется жить
Этой бабочке: пьет торопливо
С хризантемы росу.

Афоризмы
Хуже нет, чем влюбиться без взаимности в собственную жену (Габриэль Лауб)

Фраза дня
Обычно я не женат...

И на закуску коротенький анекдот
В Штатах изобрели новую пулю, без гильзы, теперь к ней изобретают автомат.

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=163


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное