home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 August / PCWorld_2001-08_cd.bin / Software / Vyzkuste / archident / IDARC.PAS < prev    next >
Pascal/Delphi Source File  |  2001-06-24  |  10KB  |  335 lines

  1. (* Beispielprogramm für die Anwendung der Unit IDPACKER.PAS *)
  2. (* Sample program for the use of IDPACKER.PAS *)
  3.  
  4. {$B-,I-,V-,E-,S-,N-,R-,O-,X-,A+}
  5. {$IFDEF WOLNA}
  6. {$N+,E+}
  7. {$ENDIF}
  8. {$IFNDEF DEBUG}
  9. {$D-,L-}
  10. {$ENDIF}
  11. {$M 5120,0,655360}
  12.  
  13. USES Umleit,DOS,IDPacker{$IFDEF LONGNAME},LFN{$ENDIF};
  14.  
  15. CONST Version='1.66.04';
  16.       Jahr='2001';
  17.       n=176+2;
  18.       PackerNames:Array[1..n] of String[22]=
  19.       ('ARC',
  20.        'ZIP',
  21.        'ZOO',
  22.        'LZH',
  23.        'DWC',
  24.        'MDCD',
  25.        'LBR',
  26.        'ARJ',
  27.        'HYP',
  28.        'UC2',
  29.        'HAP',
  30.        'HA',
  31.        'HPack (HPK)',
  32.        'SQZ (Squeeze It)',
  33.        'RAR',
  34.        'PAK',
  35.        'ARC+',
  36.        'LIM',
  37.        'BSN/BSA (PTS-DOS)',
  38.        'PUT',
  39.        'SQWEZ',
  40.        'Crush/ZIP',
  41.        'Crush/ARJ',
  42.        'Crush/LZH',
  43.        'Crush/ZOO',
  44.        'Crush/HA',
  45.        'LZExe',
  46.        'PKLite',
  47.        'Diet',
  48.        'TinyProg',
  49.        'GIF',
  50.        'JPG (JFIF)',
  51.        'JPG (HSI)',
  52.        'AIN',
  53.        'AINEXE',
  54.        'SAR',
  55.        'BS2/BSArc',
  56.        'GZIP/Comp 4.3',
  57.        'ACB',
  58.        'MAR',
  59.        'CPZ (CPShrink)',
  60.        'JRC',
  61.        'JArcs',
  62.        'Quantum',
  63.        'ReSOF',
  64.        {$IFNDEF ENGLISH}
  65.        'Crush/ungepackt',
  66.        {$ELSE}
  67.        'Crush/uncomp.',
  68.        {$ENDIF}
  69.        'ARX',
  70.        'UCEXE',
  71.        'WWPack',
  72.        'QuArk',
  73.        'YAC',
  74.        'X1',
  75.        'Codec',
  76.        'AMGC',
  77.        'NuLIB',
  78.        'PAKLeo (PLL)',
  79.        'TGZ',
  80.        'WWPack-Datendatei',
  81.        'ChArc',
  82.        'PSA',
  83.        'ZAR',
  84.        'LHark',
  85.        'CrossePAC',
  86.        'Freeze',
  87.        'KBoom',
  88.        'NSQ',
  89.        'DPA',
  90.        'TTComp',
  91.        'WIC (Fake!)',
  92.        'RKive',
  93.        'JAR',
  94.        'ESP',
  95.        'ZPack',
  96.        'DRY',
  97.        'OWS (Fake!)',
  98.        'SKY',
  99.        'ARI',
  100.        'UFA',
  101.        'Microsoft CAB',
  102.        'FOXSQZ',
  103.        'AR7',
  104.        'TSComp',
  105.        'PPMZ',
  106.        'MS Compress',
  107.        'MP3 (Marco Czudej)',
  108.        'ZET',
  109.        'XPack Data',
  110.        'XPack Diskimage',
  111.        'ARQ',
  112.        'ACE',
  113.        'Squash',
  114.        'Terse',
  115.        'XPack Single Data',
  116.        'Stuffit (Mac)',
  117.        'PUCrunch',
  118.        'BZip',
  119.        'UHarc',
  120.        'ABComp',
  121.        'CMP (André Olejko)',
  122.        'BZip2',
  123.        'LZOP',
  124.        'szip',
  125.        'Splint',
  126.        'TAR',
  127.        'InstallShield',
  128.        'CARComp',
  129.        'LZS',
  130.        'BOA',
  131.        'InstallShield Z',
  132.        'ARG',
  133.        'Gather',
  134.        'Pack Magic',
  135.        'BTS',
  136.        'ELI 5750',
  137.        'QFC',
  138.        'PRO-PACK',
  139.        'MSXiE',
  140.        'RAX',
  141.        '777',
  142.        'LZS221',
  143.        'HPA',
  144.        'Arhangel',
  145.        'EXP1',
  146.        'IMP',
  147.        'BMF',
  148.        'NRV',
  149.        'oPAQue',
  150.        'Squish (Mike Albert)',
  151.        'Par',
  152.        'HIT (Bogdan Ureche)',
  153.        'SBX',
  154.        'NSK',
  155.        'Disintegrator',
  156.        'ASD (Tobias Svensson)',
  157.        'InstallShield CAB',
  158.        'TOP4',
  159.        'BatComp (4DOS)',
  160.        'BlakHole',
  161.        'BIX (Igor Pavlov)',
  162.        'ChiefLZA',
  163.        'Blink (D.T.S.)',
  164.        'CAR (MylesHi!)',
  165.        'SARJ',
  166.        'Compack Sfx',
  167.        'LogiTech Compress',
  168.        'ARS-Sfx',
  169.        'Akt',
  170.        'Flash',
  171.        'PC/3270',
  172.        'NPack',
  173.        'PFT',
  174.        'Xtreme',
  175.        'SemOne',
  176.        'Akt32',
  177.        'InstallIt',
  178.        'PPMD',
  179.        'Swag',
  180.        'FIZ',
  181.        'BA (M. Lundqvist)',
  182.        'XPA32 (Jauming Tseng)',
  183.        'RK (M.Taylor)',
  184.        'RPM',
  185.        'DeepFreezer',
  186.        'ZZip (Damien Debin)',
  187.        'DC (Edgar Binder)',
  188.        'TPac (Tim Gordon)',
  189.        'Ai (E.Ilya)',
  190.        'Ybs (Vadim Yoockin)',
  191.        'Ai32 (E.Ilya)',
  192.        'Sbc (Sami Mäkinen)',
  193.        'DitPack',
  194.        'DMS',
  195.        'EPC',
  196.        'VSARC',
  197.        'PDZ',
  198.        'Package for the Web',
  199.        {$IFNDEF ENGLISH}
  200.        'unbekannt',
  201.        'Datei nicht gefunden');
  202.        {$ELSE}
  203.        'unknown',
  204.        'File not found');
  205.        {$ENDIF}
  206.  
  207. VAR   ArcTyp: Byte;
  208.       Archiv,s: String;
  209.       EL: String[3];
  210.  
  211. PROCEDURE Hilfe;
  212.  BEGIN
  213.   WriteLn('──────────────────────────────────────────────────────────────────────────────');
  214.   WriteLn('■■■ IDArc V',Version,' ■■■                             (C) ',Jahr,'  Jürgen Peters ««');
  215.   WriteLn('──────────────────────────────────────────────────────────────────────────────'#13#10);
  216.   {$IFNDEF ENGLISH}
  217.   WriteLn('Syntax: IDArc [Lw:\Pfad\]Archivdateiname'#13#10);
  218.   WriteLn('Identifiziert ',n-2,' Archivdateitypen und gibt entsprechenden ERRORLEVEL aus:'#13#10);
  219.   {$ELSE}
  220.   WriteLn('Syntax: IDArc [Drv:\Path\]Archive_name');
  221.   WriteLn('Identifies ',n-2,' types of archive files and returns a corresponding ERRORLEVEL:'#13#10);
  222.   {$ENDIF}
  223.   WriteLn('  0. ---          1. ARC             2. ZIP                  3. ZOO');
  224.   WriteLn('  4. LZH          5. DWC             6. MDCD                 7. LBR');
  225.   WriteLn('  8. ARJ          9. HYP            10. UC2                 11. HAP');
  226.   WriteLn(' 12. HA          13. HPack (HPK)    14. SQZ (Squeeze It)    15. RAR');
  227.   WriteLn(' 16. PAK         17. ARC+           18. LIM                 19. BSN/BSA');
  228.   WriteLn(' 20. PUT         21. SQWEZ          22. Crush/ZIP           23. Crush/ARJ');
  229.   WriteLn(' 24. Crush/LZH   25. Crush/ZOO      26. Crush/HA            27. LZExe');
  230.   WriteLn(' 28. PKLite      29. Diet           30. TinyProg            31. GIF');
  231.   WriteLn(' 32. JPG (JFIF)  33. JPG (HSI)      34. AIN                 35. AINEXE');
  232.   WriteLn(' 36. SAR         37. BS2/BSArc      38. GZIP/Comp 4.3       39. ACB');
  233.   WriteLn(' 40. MAR         41. CPShrink       42. JRC                 43. JArcs');
  234.   {$IFNDEF ENGLISH}
  235.   WriteLn(' 44. Quantum     45. ReSOF          46. Crush/ungepackt     47. ARX');
  236.   {$ELSE}
  237.   WriteLn(' 44. Quantum     45. ReSOF          46. Crush/uncompressed  47. ARX');
  238.   {$ENDIF}
  239.   WriteLn(' 48. UCEXE       49. WWPack         50. QuArk               51. YAC');
  240.   WriteLn(' 52. X1          53. Codec          54. AMGC                55. NuLIB');
  241.   If not AusgabeUmgeleitet then
  242.    BEGIN
  243.     {$IFNDEF ENGLISH}
  244.     WriteLn(#13#10'Bitte <Enter> drücken...');
  245.     {$ELSE}
  246.     WriteLn(#13#10'Please press <Enter>...');
  247.     {$ENDIF}
  248.     ReadLn;
  249.    END;
  250.   WriteLn(' 56. PAKLeo      57. TGZ            58. WWPack-Data         59. ChArc');
  251.   WriteLn(' 60. PSA         61. ZAR            62. LHark               63. CrossePAC');
  252.   WriteLn(' 64. Freeze      65. KBoom          66. NSQ                 67. DPA');
  253.   WriteLn(' 68. TTComp      69. WIC (Fake!)    70. RKive               71. JAR');
  254.   WriteLn(' 72. ESP         73. ZPack          74. DRY                 75. OWS (Fake!)');
  255.   WriteLn(' 76. SKY         77. ARI            78. UFA                 79. Microsoft CAB');
  256.   WriteLn(' 80. FOXSQZ      81. AR7            82. TSComp              83. PPMZ');
  257.   WriteLn(' 84. MS Compress 85. MP3 (M.Czudej) 86. ZET                 87. XPack Data');
  258.   WriteLn(' 88. Xpk DiskImg 89. ARQ            90. ACE                 91. Squash');
  259.   WriteLn(' 92. Terse       93. Xpk SData      94. Stuffit (Mac)       95. PUCrunch');
  260.   WriteLn(' 96. BZip        97. UHarc          98. ABComp              99. CMP');
  261.   WriteLn('100. BZip2      101. LZOP          102. szip               103. Splint');
  262.   WriteLn('104. TAR        105. InstallShield 106. CARComp            107. LZS');
  263.   WriteLn('108. BOA        109. InstallSh. Z  110. ARG                111. Gather');
  264.   WriteLn('112. Pack Magic 113. BTS           114. ELI 5750           115. QFC');
  265.   WriteLn('116. PRO-PACK   117. MSXiE         118. RAX                119. 777');
  266.   WriteLn('120. LZS221     121. HPA           122. Arhangel           123. EXP1');
  267.   WriteLn('124. IMP        125. BMF           126. NRV                127. oPAQue');
  268.   WriteLn('128. Squish     129. Par           130. HIT (B. Ureche)    131. SBX');
  269.   WriteLn('132. NaShrinK   133. Disintegrator 134. ASD (T. Svensson)  135. InStallSh. CAB');
  270.   WriteLn('136. TOP4       137. BatComp (4DOS)138. BlakHole           139. BIX (I. Pavlov)');
  271.   WriteLn('140. ChiefLZA   141. Blink (D.T.S.)142. CAR (MylesHi!)     143. SARJ');
  272.   If not AusgabeUmgeleitet then
  273.    BEGIN
  274.     {$IFNDEF ENGLISH}
  275.     WriteLn(#13#10'Bitte <Enter> drücken...');
  276.     {$ELSE}
  277.     WriteLn(#13#10'Please press <Enter>...');
  278.     {$ENDIF}
  279.     ReadLn;
  280.    END;
  281.   WriteLn('144. CompackSfx 145. LGExpand      146. ARS-Sfx            147. Akt');
  282.   WriteLn('148. Flash      149. PC/3270       150. NPack              151. PFT');
  283.   WriteLn('152. Xtreme     153. SemOne        154. Akt32              155. InstallIt');
  284.   WriteLn('156. PPMD       157. Swag          158. FIZ                159. BA');
  285.   WriteLn('160. XPA32      161. RK            162. RPM                163. DeepFreezer');
  286.   WriteLn('164. ZZip       165. DC (E.Binder) 166. TPac (Tim Gordon)  167. Ai (E.Ilya)');
  287.   WriteLn('168. Ybs        169. Ai32 (E.Ilya) 170. SBC (Sami Mäkinen) 171. DitPack');
  288.   WriteLn('172. DMS        173. EPC           174. VSARC              175. PDZ');
  289.   WriteLn('176. Package for the Web');
  290.   {$IFNDEF ENGLISH}
  291.   WriteLn('251. unbekannt  255. n.gefunden');
  292.   {$ELSE}
  293.   WriteLn('251. unknown    255. not found');
  294.   {$ENDIF}
  295.  END;
  296.  
  297. PROCEDURE DOSWrite(s: String);
  298.  VAR Regs: Registers;
  299.  BEGIN
  300.   s := s+'$';
  301.   With Regs do
  302.    BEGIN
  303.     ah := 9;
  304.     ds := Seg(s);
  305.     dx := Ofs(s)+1;
  306.     MsDos(Regs);
  307.    END;
  308.  END;
  309.  
  310. BEGIN
  311.  If ParamCount=0 then Hilfe ELSE
  312.   BEGIN
  313.    FileMode := $80;
  314.    Archiv := ParamStr(1);
  315.    ArcTyp := ArchiveType(Archiv);
  316.    Str(ArcTyp,EL);
  317.    If ArcTyp=255 then ArcTyp := n;
  318.    If ArcTyp=251 then ArcTyp := n-1;
  319.    s := '';
  320.    {$IFNDEF ENGLISH}
  321.    If (mv and av) then s := '  (Multiple Volume-Archiv + AV-geschützt/locked)' ELSE
  322.    If mv then s := '  (Multiple Volume-Archiv)' ELSE
  323.    If av then s := '  (AV-geschützt/locked)';
  324.    DOSWrite('Archiv-Typ = '+PackerNames[ArcTyp]+s+' ('+EL+')');
  325.    {$ELSE}
  326.    If (mv and av) then s := '  (multiple volume archive + AV-secured/locked)' ELSE
  327.    If mv then s := '  (multiple volume archive)' ELSE
  328.    If av then s := '  (AV-secured/locked)';
  329.    DOSWrite('Archive type = '+PackerNames[ArcTyp]+s+' ('+EL+')');
  330.    {$ENDIF}
  331.    DOSWrite(#13#10);
  332.    If ArcTyp=n then Halt(255) ELSE If ArcTyp=n-1 then Halt(251) ELSE Halt(ArcTyp);
  333.   END;
  334. END.
  335.