Komprimert fil formats

Her er et program som vil avgjøre de fleste av de store arkivtyper
bidragsyter. SWAG SUPPORT TEAM product: {> Jeg leter etter beskrivelser av formater av overskrifter i > alle populære arkivfiler, dvs. ZIP, .ARC, .LZH, .ARJ, etc. > Jeg vil bare være i stand til å lese overskrifter av alle disse > arkiver, ikke nødvendigvis manipulere dem. Noen som vet > hvor slike kan være hatt?
Her er et program som vil avgjøre de fleste store arkivtyper. Jeg har gjort et par tilføyelser, men den opprinnelige kilden var fra en melding på dette ekko ... den opprinnelige forfatterens navn har siden gått tapt. For å bruke prosedyren, bare kalle det slik: Hvis GetArcType (filnavn.ext) = Zip da ....}
Bruker Dos;
Type ArcType = (FileError, Ukjent, Zip, Zoo, Arc, lzh , Pak, Arj);
Funksjon GetArcType (fname: String): ArcType; Var ArcFile: File av Byte; i: Integer; Gat: ArcType; c: Array [1..5] av Byte; begynne Assign (ArcFile, fname); {$ I-} Reset (ArcFile); {$ I +} hvis IOResult < > 0 da Gat: = FileError annet hvis Filesize (ArcFile) < 5 da Gat: = FileError annet begynne For i: = 1 til 5, gjøre Read (ArcFile, c [i]); Close (ArcFile); if ((c [1] = $ 50) og (c [2] = $ 4B)) så Gat: = Zip else if ((c [1] = $ 60) og (c [2] = $ EA)) så Gat : = Arj else if ((c [4] = $ 6c) og (c [5] = $ 68)) så Gat: = lzh else if ((c [1] = $ 5a) og (c [2] = $ 4 f) og (c [3] = $ 4f)) så Gat: = Zoo else if ((c [1] = $ 1a) og (c [2] = $ 08)) så Gat: = Arc else if ((c [1] = $ 1a) og (c [2] = $ 0b)) så Gat: = Pak annet Gat: = Unknown; enden,
GetArcType: = Gat; end;
Var Filename: String; Retur: ArcType; {ArcType = (FileError, Ukjent, Zip, Zoo, Arc, lzh, Pak, Arj)}
begynne hvis ParamCount = 1 da begynne Filename: = ParamStr (1); Retur: = GetArcType (Filename); Tilfellet Return of ARJ: Writeln (Filename, '= ARJ'); PAK: Writeln (Filename, '= PAK'); LZH: Writeln (Filename, '= LZH'); ARC: Writeln (Filename, '= ARC'); ZOO: Writeln (Filename, '= ZOO'); ZIP: Writeln (Filename, '= ZIP'); UKJENT: Writeln (Filename: "! = Ukjent ') else Writeln (' File Not Found '); ende; end {IF} else Writeln ('No parameter'); enden.



Previous:
Next Page: