📄 chftypes.pas
字号:
{$I LZDefine.inc}
unit ChfTypes;
{type definitions for the ChiefLZ package}
interface
{$ifdef Win32}
uses
SysUtils;
Type
EChiefLZError = class(Exception);
EChiefLZCompress = class(EChiefLZError);
EChiefLZArchive = class(EChiefLZCompress);
Type
EChiefLZDLL = class(EChiefLZError);
{$endif}
Type
TLZFileStr = String[12];
TLZExtStr = {$ifdef Win32} string {$else} String[4] {$endif};
TLZPathStr = {$ifdef Win32} string {$else} String[80] {$endif};
TLZSigStr = String[18];
TLZVerStr = String[8];
Type
TLZReportRec = packed Record
{any version information?}
FileVersion: TLZVerStr;
{compressed sizes}
Sizes: LongInt;
{uncompressed sizes}
uSizes:LongInt;
{date/time stamps}
Times: LongInt;
{file names}
Names: TLZPathStr;
{is it a Directory?}
IsDir: Boolean; {introduced this for LZ report and Question procedures}
end;
Type
TLZReportProc=Procedure(Const aName:TLZReportRec{String};Const aSize:LongInt);
{procedural type for status/progress information
aName=file record information
aSize=filesize (compressed)
}
Type
TLZReply = (LZNo, LZYes, LZQuit);
TLZQuestionFunc=Function(const aName: TLZReportRec;Const aExist:string): TLZReply;
{optionally used by the LZOBJ object;
procedural type to ask whether an existing file should
be overwritten - the filename is sent to your function
in "aName" - your function should return TRUE if you
want the file to be overwritten. If no function is pointed
to, the default is to overwrite existing files.
}
Type
TLZRenameFunc = function(var Name: string): boolean;
{
Function type to determine whether to abort a file operation,
or rename the file.
}
{header for ChiefLZ archives}
Const
MaxChiefLZArchiveSize =
{$ifndef Win32}
600; {max number of files in archives: absolute max for 16-bit is 606}
{$else Win32}
2048;{max number of files in archives - let's use more for Win32}
{$endif Win32}
Const
MaxChiefLZDirectories = (MaxChiefLZArchiveSize div 2);
Type
TLZFileRec= packed Record
{is it a directory?}
IsDir: Boolean;
{its directory ID}
DirID: Word;
{its parent directory ID}
ParentDir: Word;
{any version information?}
FileVersion : TLZVerStr;
{is it compressed?}
Compressed:Boolean;
{compressed sizes}
Sizes: LongInt;
{uncompressed sizes}
uSizes:LongInt;
{date/time stamps}
Times: LongInt;
{file names}
Names: TLZFileStr;
end;
Type TLZCount = Word;
Type TLZRecurse = (LZNoRecurse, LZRecurseOnce, LZFullRecurse);
TLZArchiveHeader = packed Record
{Chief signature}
Signature: TLZSigStr;
Count: TLZCount
end;
Type
PChiefLZArchiveHeader = ^TChiefLZArchiveHeader;
TChiefLZArchiveHeader = packed Record
Count : TLZCount;
Files : Array[1..MaxChiefLZArchiveSize] of TLZFileRec
end;
Type
{$ifDef Win32}
StrType=String;
{$else}
StrType=Array[0..255] of char;
{$endif}
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -