Introduction
Extension d'un fichier compressé de format ZOO développé par Rahul Dhesi au milieu des 1980. Il fut très populaire auprès des utilisateurs des systèmes d'exploitation DOS, VAX/VMS, OpenVMS et la communauté du Commodore Amiga. Toutefois, aujourd'hui ce format n'est plus utilisé. Bien qu'il utilisait un algorithme de compression LZW pour la compression des fichiers, ce ne fut pas suffisant pour le garder dans la course.
Structure d'entête du fichier
Voici la structure d'entête du fichier ZOO :
Déplacement | Taille | Description |
---|---|---|
0000h | 20 octets | Ce champ permet d'indiquer la signature du fichier ZOO. |
0014h | 2 octets | Ce champ permet d'indiquer la partie basse de la balise. |
0016h | 2 octets | Ce champ permet d'indiquer la partie haute de la balise. |
0018h | 4 octets | Ce champ permet d'indiquer la position absolue où commence la table des fichiers. |
001Ch | 4 octets | Ce champ permet d'indiquer le moins. |
0020h | 1 octet | Ce champ permet d'indiquer la version majeure. |
0021h | 1 octet | Ce champ permet d'indiquer la version mineure. |
Voici la structure d'un enregistrement d'entrée d'un nom de fichier compressé dans le ZOO :
Déplacement | Taille | Description |
---|---|---|
0000h | 2 octets | Ce champ permet d'indiquer la partie basse de la balise. |
0002h | 2 octets | Ce champ permet d'indiquer la partie haute de la balise. |
0004h | 1 octet | Ce champ permet d'indiquer le type. |
0005h | 1 octet | Ce champ permet d'indiquer la méthode de compression. |
0006h | 4 octets | Ce champ permet d'indiquer la position de la prochaine entrée du fichier d'archive. |
000Ah | 4 octets | Ce champ permet d'indiquer le déplacement pour atteindre le fichier d'archive. |
000Eh | 4 octets | Ce champ permet d'indiquer la date et l'heure en format compacté. |
0012h | 2 octets | Ce champ permet d'indiquer la signature de vérification CRC du fichier. |
0014h | 4 octets | Ce champ permet d'indiquer la taille original du fichier d'archive. |
0018h | 4 octets | Ce champ permet d'indiquer la taille compressé du fichier d'archive. |
001Ch | 1 octet | Ce champ permet d'indiquer la version mineure du fichier d'archive compressé. |
001Dh | 1 octet | Ce champ permet d'indiquer la version majeure du fichier d'archive compressé. |
001Eh | 1 octet | Ce champ permet d'indiquer si le fichier d'archive a été supprimé (valeur 1) ou non (valeur 0). |
001Fh | 4 octets | Ce champ permet d'indiquer des commentaires associés au fichier d'archive. |
0023h | 2 octets | Ce champ permet d'indiquer la longueur des commentaires. Ce champ vaut 0 s'il n'y aucun commentaire de présent. |
0025h | 1 octet | Ce champ permet est réservé pour un usage futur. |
0026h | 13 octets | Ce champ permet permet d'indiquer le nom du fichier. |
Exemple
Voici un exemple montrant la structure de ce format suivant en Turbo Pascal 7 :
- Type
- {Fichier compressé «ZOO» }
- ZooHeader=Record
- Sign:Array[0..19]of Char; { Signature du fichier ZOO }
- LoTag,HiTag:Word;
- Start:LongInt; { Position absolue de départ de la table des fichiers }
- Minus:LongInt;
- MajorVer:Char; { Version }
- MinorVer:Char; { Sous-Version }
- End;
-
- {Entrée de fichier d'un format de fichier «ZOO» }
- ZooEntryFile=record
- LoTag,HiTag:Word;
- _Type:Byte;
- PackingMethod:Byte; { Méthode de compression }
- Next:LongInt; { Position de la prochaine entrée de fichier }
- Offset:LongInt;
- Time:LongInt; { Date et heure en format compacté }
- FileCRC:Word; { CRC de ce fichier }
- OrigSize:LongInt; { Taille original }
- SizeNow:Longint; { Taille compacté }
- MajorVer:Byte; { Version }
- MinorVer:Byte; { Sous-Version }
- Deleted:Boolean;
- Comment:LongInt; { Commentaire associée }
- CmtSize:Word; { Longueur des commentaires, 0 si aucun }
- Unknown:Byte;
- FileName:Array[0..12]of Char; { Nom du fichier }
- End;
Dernière mise à jour : Lundi, le 8 février 2016