Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Что такое LZCopy?

Вот простой пример копирования файла (сжатого или нет):

----------
Var
srcHandle, destHandle: Integer;
srcBuf, destBuf: TOFStruct;

srcHandle := LZOpenFile( f_source, srcBuf,
OF_READ or OF_SHARE_DENY_NONE );
If srcHandle = -1 Then
CopyFailed
Else Begin
destHandle := LZOpenFile( f_target, destBuf,
OF_CREATE or OF_SHARE_EXCLUSIVE );
If destHandle = -1 Then
CopyFailed
Else Begin
If LZCopy( srcHandle, destHandle ) < 0 Then
CopyFailed;
LZClose( destHandle );
End; { Else }
LZClose( srcHandle );
End; { Else }

f_source и f_target - указатели на терминированные нулем строки (PChars) с именем исходного и целевого файла. CopyFailed - просто процедура для вывода сообщения об ошибке, создайте ее сами.

Если вам необходимо скопировать сразу несколько файлов, эффективнее использовать последовательность:

------------

LZStart;
For i:=1 to numSourcefiles Do Begin
scrHandle := _lopen( имя исходного файла ... );
targetHandle := _lcreat( имя целевого файла... );
CopyLZFile( scrHandle, targetHandle );
_lclose( srcHandle );
_lclose( targetHandle );
End;
LZDone;
(* добавьте проверку на ошибку в каждом шаге! *)

Все имена файлов должны терминироваться нулем, не используйте паскалевские строки! Самый простой путь для добавления нуля в конец строки - добавление символа #0 и передача адреса первого символа строки, например (@str[1]).

---------------

Var
source: string;
sourceHandle: Word;


....
source:= 'a:\anyfile.ext';
....
source := source+#0;
sourceHandle := _lopen( @source[1], READ or OF_SHARE_DENY_NONE );



<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS