home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progbas / pbwiz12.arj / VARCDEMO.BAS < prev    next >
BASIC Source File  |  1992-02-27  |  3KB  |  96 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |         PBWIZ  Copyright (c) 1991-1992  Thomas G. Hanlin III         |
  4. '   |                                                                      |
  5. '   |                      PowerBASIC Wizard's Library                     |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9. ' This is another simple demo of the PBWiz routines.  It allows you to
  10. ' view the files in an archive (.ARC, .ARJ, .LZH, .PAK, .ZIP, or .ZOO).
  11.  
  12. ' Syntax:
  13. '   VARCDEMO arcname[.ext] [/V]
  14.  
  15. ' The file extension for the archive is optional, although you may want to
  16. ' specify it if there is a possibility that you have two archives of the
  17. ' same name but different extensions (e.g., FOO.ARJ and FOO.ZIP).  The /V
  18. ' option allows you to specify a full listing-- without it, you will get
  19. ' a "wide format" display containing just the file names in the archive.
  20.  
  21.    $INCLUDE "pbwiz.inc"
  22.  
  23.    $LINK "archives.pbu"
  24.    $LINK "stringa.obj"
  25.    $LINK "stringb.pbu"
  26.  
  27.    DEFINT A-Z
  28.  
  29.    Cmd$ = LTRIM$(RTRIM$(UCASE$(COMMAND$)))
  30.    IF INSTR(Cmd$, "/?") THEN
  31.       PRINT "VARCDEMO: View Archive Demo for PBWiz by Thomas G. Hanlin III"
  32.       PRINT
  33.       PRINT "Syntax:"
  34.       PRINT "  VARCDEMO arcname[.ext] [/V]
  35.       PRINT
  36.       PRINT "Use /V for a full listing, as opposed to just a list of the files contained"
  37.       PRINT "in the archive.  VARCDEMO currently supports ARC, ARJ, LZH, PAK, ZIP, and ZOO."
  38.       END
  39.    END IF
  40.    tmp = INSTR(Cmd$, "/V")
  41.    IF tmp THEN
  42.       FullView = -1
  43.       Cmd$ = LTRIM$(RTRIM$(LEFT$(Cmd$, tmp - 1) + MID$(Cmd$, tmp + 2)))
  44.    END IF
  45.    IF LEN(Cmd$) THEN
  46.       Arc$ = Cmd$
  47.    ELSE
  48.       PRINT "Please specify the name of an archive."
  49.       END
  50.    END IF
  51.  
  52.    CALL FindFirstA (Arc$, "*.*", ErrCode)
  53.    IF ErrCode THEN
  54.       PRINT "Unable to open archive "; CHR$(34); Arc$; CHR$(34)
  55.       END
  56.    END IF
  57.  
  58.    IF FullView THEN
  59.       PRINT "Filename       Date       Time    CRC        Curr. Size    Orig. Size"
  60.       PRINT "------------   --------   -----   --------   -----------   -----------"
  61.    END IF
  62.  
  63.    DO
  64.       FileName$ = GetNameA$
  65.       IF FullView THEN
  66.          PRINT FileName$; SPACE$(15 - LEN(FileName$));
  67.          DateSt$ = LEFT$(GetDateA$, 6) + RIGHT$(GetDateA$, 2)
  68.          TimeSt$ = LEFT$(GetTimeA$, 5)
  69.          PRINT DateSt$; "   "; TimeSt$; "   "; GetCRCA$;
  70.          CALL GetSizeA (OriginalSize&, CurrentSize&)
  71.          CALL PrintComma (CurrentSize&, 14)
  72.          CALL PrintComma (OriginalSize&, 14)
  73.          PRINT
  74.       ELSE
  75.          PRINT FileName$; SPACE$(16 - LEN(FileName$));
  76.       END IF
  77.       CALL FindNextA (ErrCode)
  78.    LOOP UNTIL ErrCode
  79.  
  80.    CALL CloseA
  81.  
  82. SUB PrintComma (Number&, FieldLen)
  83.    N$ = LTRIM$(STR$(Number&))
  84.    R$ = ""
  85.    DO WHILE LEN(N$) > 3
  86.       R$ = RIGHT$(N$, 3) + "," + R$
  87.       N$ = LEFT$(N$, LEN(N$) - 3)
  88.    LOOP
  89.    IF LEN(N$) THEN R$ = N$ + "," + R$
  90.    IF RIGHT$(R$, 1) = "," THEN R$ = LEFT$(R$, LEN(R$) - 1)
  91.    IF LEN(R$) < FieldLen THEN
  92.       R$ = SPACE$(FieldLen - LEN(R$)) + R$
  93.    END IF
  94.    PRINT R$;
  95. END SUB
  96.