mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
UPD: Continue to implement determining archive type by signature for MultiArchiveFileSource
This commit is contained in:
parent
3194ecef98
commit
c15d06c560
3 changed files with 13 additions and 0 deletions
|
|
@ -287,6 +287,7 @@ p,ul,ol /* Paragraph Style */
|
|||
<p class=rvps3><span class=rvts20>ID</span><span class=rvts21> (optional) archive ID (2-digit hex numbers delimited with spaces). </span></p>
|
||||
<p class=rvps3><span class=rvts20>IDPos</span><span class=rvts21> (optional) ID position in archive. If not present, ID will be searched in starting part of archive. You can define the positions with "-" sign. In this case the positions will be calculated from end of file. Special value <SeekID> determinated search ID if not found by numeric values of IDPos. Seek in range 0 - (Smalest of Size of file or IDSeekRange). Values can be writed as decimal (12345) or heximal (03039). For negative values use notation 0xFFFFFFFF (-1).</span></p>
|
||||
<p class=rvps3><span class=rvts20>IDSeekRange</span><span class=rvts21> (optional) count of bytes where ID seek if defined <SeekID>. By default IDSeekRange = 1Mb. See </span><span class=rvts20>IDPOS</span><span class=rvts21>. </span></p>
|
||||
<!--
|
||||
<p class=rvps3><span class=rvts20>ExcludeIDs</span><span class=rvts21> (optional) Signatures if found in file, file defined as the "process imposible".</span></p>
|
||||
<p class=rvps3><span class=rvts21>This opportunity entered for correct process files, generated InnoSetup, NSIS (NullSoft Instalation System) or other.</span></p>
|
||||
<p class=rvps3><span class=rvts21>Algoritm of working of parameter:</span></p>
|
||||
|
|
@ -325,6 +326,7 @@ p,ul,ol /* Paragraph Style */
|
|||
<p class=rvps3><span class=rvts21>0 1 2 3 4 5 6 7 8 EOF </span></p>
|
||||
<p class=rvps3><span class=rvts21>xx xx xx xx xx 01 02 03 04 .............. 08 rule 08,-1, 1</span></p>
|
||||
<p class=rvps3><span class=rvts21>xx xx xx xx xx 01 03 02 xx .............. 08</span></p>
|
||||
-->
|
||||
<p class=rvps3><span class=rvts20>Extension</span><span class=rvts21> archive format extension (without dot). </span></p>
|
||||
<p class=rvps3><span class=rvts22>Note:</span><span class=rvts21>All above parameters can be defined with multiple values. You can use comma to separate those multiple values. </span></p>
|
||||
<p class=rvps3><span class=rvts20>Description</span><span class=rvts21> archive description. A short string - version, author etc.</span></p>
|
||||
|
|
|
|||
|
|
@ -283,6 +283,7 @@ p,ul,ol /* Paragraph Style */
|
|||
<p class=rvps4><span class=rvts21>IDPos = 0х3039</span></p>
|
||||
<p class=rvps4><span class=rvts21>Отрицательные значения в шестнадцатеричном виде описываются как 0xFFFFFFFF (-1 в десятичном)</span></p>
|
||||
<p class=rvps4><span class=rvts20>IDSeekRange</span><span class=rvts21> (необязательный) число байт, в котором MultiArc будет пытаться найти ID.Если параметр отсутствует, будет использовано меньшее из значений Размер_файла или 1Мбайт. Поиск всегда происходит от начала файла, SkipSfxHeader игнорируется. Это может замедлить открытие архивов или поиск в архиве. Если отсутствует IDPOS, тогда используется поиск ID в диаппазонеот начала файла до меньшего из значений -- (размер файла, IDSeekRange).</span></p>
|
||||
<!--
|
||||
<p class=rvps4><span class=rvts20>ExcludeIDs</span><span class=rvts21> (необязательный) Сигнатура при нахождении которой файл определяется как "Обработать не возможно". </span></p>
|
||||
<p class=rvps4><span class=rvts21>Данная возможность введена для корректной обработки файлов генерируемых программами InnoSetup, NSIS (NullSoft Instalation System) и возможно другими.</span></p>
|
||||
<p class=rvps4><span class=rvts21>Алгоритм работы данного параметра:</span></p>
|
||||
|
|
@ -319,6 +320,7 @@ p,ul,ol /* Paragraph Style */
|
|||
<p class=rvps4><span class=rvts21>0 1 2 3 4 5 6 7 8 EOF </span></p>
|
||||
<p class=rvps4><span class=rvts21>xx xx xx xx xx 01 02 03 04 .............. 08 правило (08,-1, 1)</span></p>
|
||||
<p class=rvps4><span class=rvts21>xx xx xx xx xx 01 03 02 xx .............. 08</span></p>
|
||||
-->
|
||||
<p class=rvps4><span class=rvts20>Extension</span><span class=rvts21> расширения, которые используются архивами (без точки).</span></p>
|
||||
<p class=rvps4><span class=rvts20>Description</span><span class=rvts21> Описание архиватора. Строка содержащая версию, автора и т.п. </span></p>
|
||||
<p class=rvps4><span class=rvts22>Пример:</span></p>
|
||||
|
|
|
|||
|
|
@ -105,12 +105,14 @@ type
|
|||
FAdd,
|
||||
FAddMultiVolume,
|
||||
FAddSelfExtract: UTF8String;
|
||||
FIDSeekRange: LongInt;
|
||||
public
|
||||
FEnabled: Boolean;
|
||||
FOutput: Boolean;
|
||||
FDebug: Boolean;
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
function CanYouHandleThisFile(const FileName: UTF8String): Boolean;
|
||||
property FID: AnsiString read FSignature write SetSignature;
|
||||
property FIDPos: AnsiString read FSignaturePosition write SetSignaturePosition;
|
||||
end;
|
||||
|
|
@ -212,6 +214,7 @@ begin
|
|||
FDescription:= TrimQuotes(IniFile.ReadString(Section, 'Description', EmptyStr));
|
||||
FID:= TrimQuotes(IniFile.ReadString(Section, 'ID', EmptyStr));
|
||||
FIDPos:= TrimQuotes(IniFile.ReadString(Section, 'IDPos', EmptyStr));
|
||||
FIDSeekRange:= IniFile.ReadInteger(Section, 'IDSeekRange', 0);
|
||||
FExtension:= TrimQuotes(IniFile.ReadString(Section, 'Extension', EmptyStr));
|
||||
FStart:= TrimQuotes(IniFile.ReadString(Section, 'Start', EmptyStr));
|
||||
FEnd:= TrimQuotes(IniFile.ReadString(Section, 'End', EmptyStr));
|
||||
|
|
@ -264,6 +267,7 @@ begin
|
|||
IniFile.WriteString(Section, 'Description', FDescription);
|
||||
IniFile.WriteString(Section, 'ID', FID);
|
||||
IniFile.WriteString(Section, 'IDPos', FIDPos);
|
||||
IniFile.WriteInteger(Section, 'IDSeekRange', FIDSeekRange);
|
||||
IniFile.WriteString(Section, 'Extension', FExtension);
|
||||
IniFile.WriteString(Section, 'Start', FStart);
|
||||
IniFile.WriteString(Section, 'End', FEnd);
|
||||
|
|
@ -372,6 +376,11 @@ begin
|
|||
inherited Destroy;
|
||||
end;
|
||||
|
||||
function TMultiArcItem.CanYouHandleThisFile(const FileName: UTF8String): Boolean;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
{ TSignatureList }
|
||||
|
||||
function TSignatureList.GetSignature(Index: Integer): PSignature;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue