Organization: NetDialogue (Gid:gate.dialnet.msk.su)
Чтобы выяснить тип архивированного файла я в своих программах делаю так:
Var
Buffer : Longint;
F : file;
Begin
BlockRead(f,Bufer,4);
If Bufer=$4034b50 then CurCompress:=Zip
else If (Lo(Bufer)=$60) and (Hi(Bufer)=$EA) then CurCompress:=Arj
else If (Bufer=$2554531A) or (Bufer=$2550481A) then CurCompress:=Hyp
else If Lo(Bufer)=$1A then CurCompress:=Arc
else If Bufer=$204F4F5A then CurCompress:=Zoo
else
begin
Seek(f,0);
BlockRead(f,LzhIceDop,1);
Seek(f,2);
Blockread(f,Signature,2);
If Signature=$6C2D then CurCompress:=Lzh
else CurCompress:=None
end;
Может можно и пpоще, но так надежней -- во всяком случае еще ни pазу
он ничего не пеpепутал. Вот.
Dilys Newman
--- Maximus 2.01wb
* Origin: Night Star BBS (2:5030/31)
|