Voir le contenu de arj, lzh et les fichiers zip


Une unité qui affiche le contenu des fichiers compressés

l'auteur: STEVE WIERENGA

{
Auteur: Steve Wierenga
ARJ Viewer
}
{Bonjour à Tous:
je suis à la libération de ces Parts dans le domaine public. Ils sont des Unités à afficher Arj,
Lzh, et les Fichiers Zip. Ce ne sont pas des professionnels, et probablement de quelques
bugs. Si vous les utilisez dans vos Programmes et d'avoir envie de me donner de crédit, je
gagné & #39 t Objet... va Ici: }

Unité ArjV

(**) Interface (**)

Utilise
Dos,Crt

Type
AFHeader = Record { ArjFileHeader }
HeadID,
HdrSize : Mot
HeadSize,
VerNum,
MinVerNum,
HostOS,
ArjFlag,
Méthode
FType,
Réservés : Octet
FileTime,
PackSize,
OrigSize,
FileCRC : LongInt
FilePosF,
FileAcc,
HostData : Mot
fin

Var
ff : Integer
b : Byte
f : Fichier
sl : LongInt
NR : Mot
FHdr : ^AFHeader
s,sss : String
Méthode : String[8]
l : String[80]
Z,
totalu,
totalc : LongInt
x,d : LongInt
Dt1,dt2: DateTime
i,e : Entier
enregistré : Boolean

Procédure ArjView(ArjFile : String)
Fonction de GAN(ArjFile : String): String

(**) mise en Œuvre (**)

Procédure de Résilier
begin
Write( & #39 ARCHPEEK ne pourrait pas trouver le Fichier spécifié.
l'Abandon... & #39 )
Halte
fin

Procédure ArjView(ArjFile : String)
begin
Nouveau(FHdr)
Assign(f, arjFile)
{$I-}
Reset(F, 1) { Ouvrir le Fichier }
{$I }
Si IOResult <> 0 then
Résilier { Fichier Spécifié existe?}
enregistré := False { Non }
si pas enregistré, alors
begin
Writeln( & #39 ArchPeek 0.01 Alpha [NON] Copyright 1993 Steve Wierenga & #39 )
Delay(200)
fin
SL := 0 z := 0 TotalU := 0 TotalC := 0 { Init Variables }
sss := GAN(ArjFile) { Obtenir l'Arj Filename }
Writeln( & #39 Arj nom de fichier: & #39 ,SSS)
Write( & #39 Longueur du Nom de la Taille Enregistré Méthode Date Heure & #39 )
WriteLn( & #39 & & & & & & & & & & & & & & & & & & & & & & & & & & _#39 )
ff := 0
Repeat
ff := ff 1
Seek(F,NM)
BlockRead(F,FHdr^,SizeOf(AFHeader),NR) { Lire l'en-tête }
If (NR = SizeOf(AFHeader))
begin
s := & #39 & #39
Repeat
BlockRead(F,B,1) { Char Comprimé Filename }
Si B <> 0 then
s := s Chr(b) { Mettre Char en String }
Jusqu'à ce que B = 0 { Jusqu'à ce que pas plus de Caractères }
Longueur de la caisse(S) De { Redresser String }
0 : s := s & #39 & #39
1): S := s & #39 & #39
2): s := s & #39 & #39
3 : S := S & #39 & #39
4): S := S & #39 & #39
5): S := S & #39 & #39
6): S := S & #39 & #39
7): S := S & #39 & #39
8): S := S & #39 & #39
9): S := S & #39 & #39
10): S := S & #39 & #39
11): S := S & #39 & #39
12): S := S
fin
z := z 1
UnPackTime(FHdr^.FileTime,dt2) { Obtenir le temps de Fichier compressé }
Cas FHdr^.Méthode De { Get méthode de compression }
0 : Méthode := & #39 Stockées & #39
1 : Méthode := & #39 la Plupart & #39
2 : Méthode := & #39 2ème Plus & #39
3 : Méthode := & #39 2ème Rapide & #39
4 : Méthode := & #39 plus Rapide & #39
fin
Write( & #39 & #39 ,S,FHdr^.OrigSize:9,FHdr^.PackSize:10)
{ Écrire Filesizes }
Si ff > 1
{ Ne & #39 t arriver en premier Arj Fichier Arj Fichier }
Write( (100-FHdr^.PackSize/FHdr^.OrigSize*100):9:0, & #39 % & #39 ,Méthode:15)
{ Écrire ratios, la méthode }
Else
Write( Méthode:25)
Cas de dt2.mois de { indiquer la date d'un Fichier compressé }
1..9 : Écrire( & #39 0 & #39 :4,dt2.mois)
10..12 : Write( dt2.mois:4)
fin
Écrire( & #39 / & #39 )
Cas de dt2.jour de
1..9 : Écrire( & #39 0 & #39 ,dt2.jour)
10..31 : Écrire( dt2.jour)
fin
Écrire( & #39 / & #39 )
Cas de dt2.année de
1980 : Écrire( & #39 80 & #39 )
1981 : Écrire( & #39 81 & #39 )
1982 : Écrire( & #39 82 & #39 )
1983 : Écrire( & #39 83 & #39 )
1984 : Écrire( & #39 84 & #39 )
1985 : Écrire( & #39 85 & #39 )
1986 : Écrire( & #39 86 & #39 )
1987 : Écrire( & #39 87 & #39 )
1988 : Écrire( & #39 88 & #39 )
1989 : Écrire( & #39 89 & #39 )
1990 : Écrire( & #39 90 & #39 )
1991 : Écrire( & #39 91 & #39 )
1992 : Écrire( & #39 92 & #39 )
1993 : Écrire( & #39 93 & #39 )
1994 : Écrire( & #39 94 & #39 )
1995 : Écrire( & #39 95 & #39 )
1996 : Écrire( & #39 96 & #39 )
fin
Cas de dt2.heure de { Afficher l'heure d'un Fichier compressé }
0..9 : Écrire( & #39 0 & #39 :2,dt2.heure, & #39 : & #39 )
10..23 : Écrire( dt2.heure:3, & #39 : & #39 )
fin
Cas de dt2.min
0..9 : Écrire( & #39 0 & #39 ,dt2.min, & #39 : & #39 )
10..59 : Écrire( dt2.min, & #39 : & #39 )
fin
Cas de dt2.sec
0..9 : Writeln( & #39 0 & #39 ,dt2.sec)
10..59 : Writeln( dt2.sec)
fin
TotalU := TotalU FHdr^.OrigSize { Augmenter la taille non compressée }
TotalC := TotalC FHdr^.PackSize { Augmenter la taille compressée }
Repeat
BlockRead(F,B,1)
Jusqu'à ce que b = 0
BlockRead(F,FHdr^.FileCRC,4) { Aller au-delà de Fichier CRC }
BlockRead(f,N,2)
Sl := FilePos(F) FHdr^.PackSize { Où en sommes-nous dans le Fichier? }
fin

Jusqu'à ce que (FHdr^.HdrSize = 0) { Pas plus de Fichiers? }
GetFTime(F,x)
UnPackTime(x,dt1)
WriteLn( & #39 ============================================================================ & #39 )
Write( (z-1):4, & #39 Fichiers & #39 ,TotalU:12,TotalC:10,(100-TotalC/TotalU*100):9:0, & #39 % & #39 )
Cas de dt1.mois de { d'Obtenir la date et l'heure de l'Arj Fichier }
1..9 : Écrire( & #39 0 & #39 :19,dt1.mois)
10..12 : Write( dt1.mois:20)
fin
Écrire( & #39 / & #39 )
Cas de dt1.jour de
1..9 : Écrire( & #39 0 & #39 ,dt1.jour)
10..31 : Écrire( dt1.jour)
fin
Écrire( & #39 / & #39 )
Cas de dt1.année de
1980 : Écrire( & #39 80 & #39 )
1981 : Écrire( & #39 81 & #39 )
1982 : Écrire( & #39 82 & #39 )
1983 : Écrire( & #39 83 & #39 )
1984 : Écrire( & #39 84 & #39 )
1985 : Écrire( & #39 85 & #39 )
1986 : Écrire( & #39 86 & #39 )
1987 : Écrire( & #39 87 & #39 )
1988 : Écrire( & #39 88 & #39 )
1989 : Écrire( & #39 89 & #39 )
1990 : Écrire( & #39 90 & #39 )
1991 : Écrire( & #39 91 & #39 )
1992 : Écrire( & #39 92 & #39 )
1993 : Écrire( & #39 93 & #39 )
1994 : Écrire( & #39 94 & #39 )
1995 : Écrire( & #39 95 & #39 )
1996 : Écrire( & #39 96 & #39 )
fin
Cas de dt1.heure de
0..9 : Écrire( & #39 0 & #39 :2,dt1.heure, & #39 : & #39 )
10..23 : Écrire( dt1.heure:3, & #39 : & #39 )
fin
Cas de dt1.min
0..9 : Écrire( & #39 0 & #39 ,dt1.min, & #39 : & #39 )
10..59 : Écrire( dt1.min, & #39 : & #39 )
fin
Cas de dt1.sec
0..9 : Writeln( & #39 0 & #39 ,dt1.sec)
10..59 : Writeln( dt1.sec)
fin
Close(f)
Disposer(FHdr) { Terminé }
fin

la Fonction GAN(ARJFile:String): String
Var
Dir : DirStr
Nom : NameStr
Exts : ExtStr
begin
FSplit(ARJFile,Dir,Nom,Exts)
GAN := Nom de Exts
fin

à la fin.









Voir le contenu de arj, lzh et les fichiers zip


Voir le contenu de arj, lzh et les fichiers zip : Plusieurs milliers de conseils pour vous faciliter la vie.


Une unite qui affiche le contenu des fichiers compresses

l'auteur: STEVE WIERENGA

{
Auteur: Steve Wierenga
ARJ Viewer
}
{Bonjour a Tous:
je suis a la liberation de ces Parts dans le domaine public. Ils sont des Unites a afficher Arj,
Lzh, et les Fichiers Zip. Ce ne sont pas des professionnels, et probablement de quelques
bugs. Si vous les utilisez dans vos Programmes et d'avoir envie de me donner de credit, je
gagne & #39 t Objet... va Ici: }

Unite ArjV

(**) Interface (**)

Utilise
Dos,Crt

Type
AFHeader = Record { ArjFileHeader }
HeadID,
HdrSize : Mot
HeadSize,
VerNum,
MinVerNum,
HostOS,
ArjFlag,
Methode
FType,
Reserves : Octet
FileTime,
PackSize,
OrigSize,
FileCRC : LongInt
FilePosF,
FileAcc,
HostData : Mot
fin

Var
ff : Integer
b : Byte
f : Fichier
sl : LongInt
NR : Mot
FHdr : ^AFHeader
s,sss : String
Methode : String[8]
l : String[80]
Z,
totalu,
totalc : LongInt
x,d : LongInt
Dt1,dt2: DateTime
i,e : Entier
enregistre : Boolean

Procedure ArjView(ArjFile : String)
Fonction de GAN(ArjFile : String): String

(**) mise en Œuvre (**)

Procedure de Resilier
begin
Write( & #39 ARCHPEEK ne pourrait pas trouver le Fichier specifie.
l'Abandon... & #39 )
Halte
fin

Procedure ArjView(ArjFile : String)
begin
Nouveau(FHdr)
Assign(f, arjFile)
{$I-}
Reset(F, 1) { Ouvrir le Fichier }
{$I }
Si IOResult <> 0 then
Resilier { Fichier Specifie existe?}
enregistre := False { Non }
si pas enregistre, alors
begin
Writeln( & #39 ArchPeek 0.01 Alpha [NON] Copyright 1993 Steve Wierenga & #39 )
Delay(200)
fin
SL := 0 z := 0 TotalU := 0 TotalC := 0 { Init Variables }
sss := GAN(ArjFile) { Obtenir l'Arj Filename }
Writeln( & #39 Arj nom de fichier: & #39 ,SSS)
Write( & #39 Longueur du Nom de la Taille Enregistre Methode Date Heure & #39 )
WriteLn( & #39 & & & & & & & & & & & & & & & & & & & & & & & & & & _#39 )
ff := 0
Repeat
ff := ff 1
Seek(F,NM)
BlockRead(F,FHdr^,SizeOf(AFHeader),NR) { Lire l'en-tete }
If (NR = SizeOf(AFHeader))
begin
s := & #39 & #39
Repeat
BlockRead(F,B,1) { Char Comprime Filename }
Si B <> 0 then
s := s Chr(b) { Mettre Char en String }
Jusqu'a ce que B = 0 { Jusqu'a ce que pas plus de Caracteres }
Longueur de la caisse(S) De { Redresser String }
0 : s := s & #39 & #39
1): S := s & #39 & #39
2): s := s & #39 & #39
3 : S := S & #39 & #39
4): S := S & #39 & #39
5): S := S & #39 & #39
6): S := S & #39 & #39
7): S := S & #39 & #39
8): S := S & #39 & #39
9): S := S & #39 & #39
10): S := S & #39 & #39
11): S := S & #39 & #39
12): S := S
fin
z := z 1
UnPackTime(FHdr^.FileTime,dt2) { Obtenir le temps de Fichier compresse }
Cas FHdr^.Methode De { Get methode de compression }
0 : Methode := & #39 Stockees & #39
1 : Methode := & #39 la Plupart & #39
2 : Methode := & #39 2eme Plus & #39
3 : Methode := & #39 2eme Rapide & #39
4 : Methode := & #39 plus Rapide & #39
fin
Write( & #39 & #39 ,S,FHdr^.OrigSize:9,FHdr^.PackSize:10)
{ Ecrire Filesizes }
Si ff > 1
{ Ne & #39 t arriver en premier Arj Fichier Arj Fichier }
Write( (100-FHdr^.PackSize/FHdr^.OrigSize*100):9:0, & #39 % & #39 ,Methode:15)
{ Ecrire ratios, la methode }
Else
Write( Methode:25)
Cas de dt2.mois de { indiquer la date d'un Fichier compresse }
1..9 : Ecrire( & #39 0 & #39 :4,dt2.mois)
10..12 : Write( dt2.mois:4)
fin
Ecrire( & #39 / & #39 )
Cas de dt2.jour de
1..9 : Ecrire( & #39 0 & #39 ,dt2.jour)
10..31 : Ecrire( dt2.jour)
fin
Ecrire( & #39 / & #39 )
Cas de dt2.annee de
1980 : Ecrire( & #39 80 & #39 )
1981 : Ecrire( & #39 81 & #39 )
1982 : Ecrire( & #39 82 & #39 )
1983 : Ecrire( & #39 83 & #39 )
1984 : Ecrire( & #39 84 & #39 )
1985 : Ecrire( & #39 85 & #39 )
1986 : Ecrire( & #39 86 & #39 )
1987 : Ecrire( & #39 87 & #39 )
1988 : Ecrire( & #39 88 & #39 )
1989 : Ecrire( & #39 89 & #39 )
1990 : Ecrire( & #39 90 & #39 )
1991 : Ecrire( & #39 91 & #39 )
1992 : Ecrire( & #39 92 & #39 )
1993 : Ecrire( & #39 93 & #39 )
1994 : Ecrire( & #39 94 & #39 )
1995 : Ecrire( & #39 95 & #39 )
1996 : Ecrire( & #39 96 & #39 )
fin
Cas de dt2.heure de { Afficher l'heure d'un Fichier compresse }
0..9 : Ecrire( & #39 0 & #39 :2,dt2.heure, & #39 : & #39 )
10..23 : Ecrire( dt2.heure:3, & #39 : & #39 )
fin
Cas de dt2.min
0..9 : Ecrire( & #39 0 & #39 ,dt2.min, & #39 : & #39 )
10..59 : Ecrire( dt2.min, & #39 : & #39 )
fin
Cas de dt2.sec
0..9 : Writeln( & #39 0 & #39 ,dt2.sec)
10..59 : Writeln( dt2.sec)
fin
TotalU := TotalU FHdr^.OrigSize { Augmenter la taille non compressee }
TotalC := TotalC FHdr^.PackSize { Augmenter la taille compressee }
Repeat
BlockRead(F,B,1)
Jusqu'a ce que b = 0
BlockRead(F,FHdr^.FileCRC,4) { Aller au-dela de Fichier CRC }
BlockRead(f,N,2)
Sl := FilePos(F) FHdr^.PackSize { Ou en sommes-nous dans le Fichier? }
fin

Jusqu'a ce que (FHdr^.HdrSize = 0) { Pas plus de Fichiers? }
GetFTime(F,x)
UnPackTime(x,dt1)
WriteLn( & #39 ============================================================================ & #39 )
Write( (z-1):4, & #39 Fichiers & #39 ,TotalU:12,TotalC:10,(100-TotalC/TotalU*100):9:0, & #39 % & #39 )
Cas de dt1.mois de { d'Obtenir la date et l'heure de l'Arj Fichier }
1..9 : Ecrire( & #39 0 & #39 :19,dt1.mois)
10..12 : Write( dt1.mois:20)
fin
Ecrire( & #39 / & #39 )
Cas de dt1.jour de
1..9 : Ecrire( & #39 0 & #39 ,dt1.jour)
10..31 : Ecrire( dt1.jour)
fin
Ecrire( & #39 / & #39 )
Cas de dt1.annee de
1980 : Ecrire( & #39 80 & #39 )
1981 : Ecrire( & #39 81 & #39 )
1982 : Ecrire( & #39 82 & #39 )
1983 : Ecrire( & #39 83 & #39 )
1984 : Ecrire( & #39 84 & #39 )
1985 : Ecrire( & #39 85 & #39 )
1986 : Ecrire( & #39 86 & #39 )
1987 : Ecrire( & #39 87 & #39 )
1988 : Ecrire( & #39 88 & #39 )
1989 : Ecrire( & #39 89 & #39 )
1990 : Ecrire( & #39 90 & #39 )
1991 : Ecrire( & #39 91 & #39 )
1992 : Ecrire( & #39 92 & #39 )
1993 : Ecrire( & #39 93 & #39 )
1994 : Ecrire( & #39 94 & #39 )
1995 : Ecrire( & #39 95 & #39 )
1996 : Ecrire( & #39 96 & #39 )
fin
Cas de dt1.heure de
0..9 : Ecrire( & #39 0 & #39 :2,dt1.heure, & #39 : & #39 )
10..23 : Ecrire( dt1.heure:3, & #39 : & #39 )
fin
Cas de dt1.min
0..9 : Ecrire( & #39 0 & #39 ,dt1.min, & #39 : & #39 )
10..59 : Ecrire( dt1.min, & #39 : & #39 )
fin
Cas de dt1.sec
0..9 : Writeln( & #39 0 & #39 ,dt1.sec)
10..59 : Writeln( dt1.sec)
fin
Close(f)
Disposer(FHdr) { Termine }
fin

la Fonction GAN(ARJFile:String): String
Var
Dir : DirStr
Nom : NameStr
Exts : ExtStr
begin
FSplit(ARJFile,Dir,Nom,Exts)
GAN := Nom de Exts
fin

a la fin.


Voir le contenu de arj, lzh et les fichiers zip

Voir le contenu de arj, lzh et les fichiers zip : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation