home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / ARCA130.ZIP / ARCANAL.DOC < prev    next >
Text File  |  1993-03-16  |  42KB  |  998 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.                                     ArcAnal
  13.  
  14.              Archive Analysis BBS Utility, version 1.30 User Manual
  15.  
  16.          Copyright 1992, 1993 by David G. Fisher.  All rights reserved.
  17.  
  18.  
  19.  
  20.                                 LiveNet OS/2 BBS
  21.            1:170/110@fidonet, 40:4372/0 (ibmNET), 81:202/201 (OS2NET)
  22.  
  23.  
  24.  
  25.                                TABLE OF CONTENTS
  26.  
  27.        Overview
  28.             What Is ArcAnal?.................................3
  29.             Disclaimer.......................................4
  30.             Disclaimer.......................................4
  31.             Description of Syntax............................5
  32.             Limitations......................................6
  33.             General Use......................................7
  34.  
  35.        Using ArcAnal
  36.             The Configuration File...........................8
  37.             Common Qualifiers................................9
  38.             Building a Database.............................10
  39.             Updating a Database.............................12
  40.             Analyzing a Database and Creating Reports.......13
  41.                  Description of Options.....................14
  42.                  Archive Filename Report (DUPARCHIVENAMES)..16
  43.                  Archive Contents Report (DUPCONTENTS)......17
  44.             Resetting Archive Dates.........................19
  45.             Displaying A Database...........................20
  46.             Purging Your File Collection....................21
  47.  
  48.        Examples
  49.             Cleaning Up Your File Sections..................22
  50.  
  51.  
  52.  
  53.        ArcAnal 1.30 Users Manual                                 Page 3
  54.        ------------------------------------------------------------------
  55.  
  56.        What Is ArcAnal?
  57.  
  58.        ArcAnal was originally conceived out of the necessity to recover
  59.        disk space--which was rapidly disappearing!  I wanted the ability
  60.        to determine which archives were identical in the file collection
  61.        (but which had different archive file names) and which archives
  62.        are really only older versions of the same files.  Using ArcAnal,
  63.        I was able to easily recover over 35MB of disk space from a 250MB
  64.        file collection, and improve the accuracy of that file collection.
  65.        The accuracy was improved by being able to select the "best"
  66.        descriptions for duplicate files, set the dates of the archives
  67.        themselves to the date of the newest file *within* the archive,
  68.        eliminate duplicate archives, and delete old versions of the same
  69.        archive/program.
  70.  
  71.        In this document, I will be using the term "archive" to mean any
  72.        file that has been compressed and contains one or more files
  73.        within it.  I will be using the term "contents" to refer to all
  74.        the files within an archive.  Also, whenever a command is given as
  75.        an example, I will break the command apart over several lines for
  76.        readability.  When this command is actually executed, however, it
  77.        would all be contained on one line.
  78.  
  79.        ArcAnal will create a database of the file areas you select.  The
  80.        database contains information on all your archives (*.ARJ, *.ZIP,
  81.        *.LZH, *.ZOO, etc.) in the file areas.  This information includes
  82.        how many files are within the archives, and the names, dates, and
  83.        sizes of these files.
  84.  
  85.        This database can then be continually updated as new files are
  86.        added to your collection, or these files are moved to different
  87.        directories.  Reports on your file areas can be generated using
  88.        the database.  These reports can then be used when instructing
  89.        ArcAnal which files are to be purged, have descriptions changed,
  90.        or simply left alone.
  91.  
  92.        A side benefit of ArcAnal is the ability to test files before they
  93.        are released into your downloadable sections.  This is especially
  94.        helpful if you are part of a File Distribution Network and want to
  95.        make sure that the file has not been previously "hatched" under a
  96.        different name, or *has* been hatched under a different name, but
  97.        has the same contents.
  98.  
  99.        The most recent ARCANAL release is always available here with the
  100.        magic File Request name of ARCANAL.
  101.  
  102.             Dave Fisher
  103.             LiveNet,  1:170/110@fidonet.org
  104.                       40:4372/0 (ibmNET)
  105.                       81:202/201 (OS2NET)
  106.  
  107.        Please don't hesitate to send suggestions.  Find a bug and I'll
  108.        promptly try to make a new version, or at least a temporary work-
  109.        around, available to you.
  110.  
  111.  
  112.  
  113.        ArcAnal 1.30 Users Manual                                 Page 4
  114.        ------------------------------------------------------------------
  115.  
  116.        Disclaimer
  117.  
  118.        Disclaimer
  119.  
  120.        This program is shareware.  There is absolutely no warranty for
  121.        this program or guarantee it will work.  The user of this program
  122.        assumes all risk.  While I feel confident this program will not
  123.        harm your system in any way, by using this program, you agree to
  124.        assume full responsibility for any adverse effect to your system.
  125.  
  126.        PLEASE BACKUP YOUR SYSTEM!  Since this program can be used to
  127.        modify files in your downloadable file sections, I strongly advise
  128.        that you make sure your entire file collection is backed up before
  129.        running ArcAnal.
  130.  
  131.        While I don't demand a contribution, if you find this program
  132.        useful and would like to contribute to ongoing shareware
  133.        development, please feel free to send a contribution of $10 or
  134.        more to:
  135.  
  136.             Dave Fisher
  137.             5131 East 88th Court
  138.             Tulsa, Oklahoma  74137
  139.             USA
  140.  
  141.        Where applicable, all trademarks referred to here are the property
  142.        of their owners.
  143.  
  144.  
  145.  
  146.        ArcAnal 1.30 Users Manual                                 Page 5
  147.        ------------------------------------------------------------------
  148.  
  149.        Description of Syntax
  150.  
  151.        Please note that any [action] command keyword or qualifier (all
  152.        /xxxx keywords) are only significant to 4 characters.  Thus,
  153.        "/Config" can be expressed as "/Conf".
  154.  
  155.        ArcAnal [action] [qualifiers...]
  156.  
  157.        Common qualifiers to all [action] commands:      Defaults
  158.  
  159.            /Config = <path+file name>                 : ArcAnal.cfg
  160.            /[no]Log                                   : NoLog
  161.            /LogFile = <path+file name>                : None
  162.            /LogLevel = <1..4>                         : 4
  163.            /[no]Quiet                                 : NoQuiet
  164.  
  165.        Specific [action] commands and qualifiers:
  166.  
  167.        ArcAnal BUILD DATABASE <database name>
  168.  
  169.        ArcAnal UPDATE DATABASE <database name>
  170.  
  171.        ArcAnal ANALYZE DATABASE <database name>
  172.            /Output=<filename>                         : STDOUT
  173.            /Report=(DUPARCHIVENAMES, DUPCONTENTS)     : DUPARCHIVENAMES
  174.            /Include=(PATHS, DESCRIPTIONS, ADDRESSES)  : No Includes
  175.            /Basenum=<number>                          : 5
  176.            /Percent=<percent threshold>               : 80%
  177.            /DateMatch                                 : NoDateMatch
  178.            /SizeMatch                                 : NoSizeMatch
  179.  
  180.        ArcAnal RESETDATES DATABASE <database name>
  181.  
  182.        ArcAnal DISPLAY DATABASE <database name>
  183.  
  184.        ArcAnal TEST FILE <filename>
  185.            /Database=<database name>                  : (first defined
  186.                                                          database)
  187.        ArcAnal PURGE DATABASE <database name>
  188.            /Input=<report filename>                   : None
  189.  
  190.  
  191.  
  192.        ArcAnal 1.30 Users Manual                                 Page 6
  193.        ------------------------------------------------------------------
  194.  
  195.        Limitations
  196.  
  197.        The single greatest limitation of ArcAnal right now is its
  198.        availability under multiple operating systems.  Currently ArcAnal
  199.        will only run under OS/2 version 2.0 or greater.  This is a 32-bit
  200.        application and has the potential of consuming a great amount of
  201.        memory as it runs.  It would be possible to compile the program as
  202.        a 16-bit application, and thus have it available for OS/2 version
  203.        1.3 or earlier, as well as MS-DOS, but to do so would require time
  204.        that I do not currently have since I would have to re-design some
  205.        of the data structures that can exceed the 64k segment limitation
  206.        under 16-bit operating systems.
  207.  
  208.        The TEST FILE command is not yet implemented.
  209.  
  210.  
  211.  
  212.        ArcAnal 1.30 Users Manual                                 Page 7
  213.        ------------------------------------------------------------------
  214.  
  215.        General Use
  216.  
  217.        The basic use of ArcAnal is as an analysis tool.  To use ArcAnal
  218.        as an analysis tool with the intent to clean up your file
  219.        sections, you would take the following basic steps:
  220.  
  221.             1.   Define all your file sections in the ArcAnal
  222.                  configuration file and assign them a Database Name.
  223.  
  224.             2.   Create the Database.
  225.  
  226.             3.   Create an analysis report.
  227.  
  228.             4.   Edit the report file, marking the entries you wish to
  229.                  change or delete in the file sections.
  230.  
  231.             5.   Purge the file sections using the edited report file.
  232.  
  233.  
  234.  
  235.        ArcAnal 1.30 Users Manual                                 Page 8
  236.        ------------------------------------------------------------------
  237.  
  238.        The Configuration File
  239.  
  240.        The configuration file provides ArcAnal with information
  241.        concerning default behavior, as well as definitions for you file
  242.        areas and archival programs.
  243.  
  244.        The configuration file included with ArcAnal is the file that I
  245.        use on my own system.  It is highly documented, and is meant to be
  246.        a companion to this document.  It can be modified to reflect your
  247.        file areas and the default behaviors you wish to see ArcAnal use
  248.        (logging levels, work directories, etc).
  249.  
  250.  
  251.  
  252.        ArcAnal 1.30 Users Manual                                 Page 9
  253.        ------------------------------------------------------------------
  254.  
  255.        Common Qualifiers
  256.  
  257.        The qualifiers discussed in this section can be used on any
  258.        ArcAnal command.
  259.  
  260.        /Config = <path+file name>
  261.  
  262.             This is the name of the configuration file.  The default
  263.             is ArcAnal.Cfg in the current directory.  You can also
  264.             define the environment variable ARCANAL_CONFIG=<path+file
  265.             name> instead of using this qualifier.
  266.  
  267.        /[no]Log
  268.  
  269.             This qualifier will turn the logging function on and off.
  270.  
  271.        /LogFile = <path+file name>
  272.  
  273.             This qualifier defines the name of the log file.
  274.  
  275.        /LogLevel = <1..4>
  276.  
  277.             This qualifier defines the level of message detail in the
  278.             log file.  Level 1 is the least detailed, while Level 4 is
  279.             the most verbose.  The levels indicate the 'importance' of
  280.             a message, where Level 1 is the most important (usually
  281.             error messages).
  282.  
  283.        /[no]Quiet
  284.  
  285.             This qualifier controls whether the program should emit an
  286.             printed output.  If /Quiet, the only output will be the
  287.             program copyright line and any error messages.  The
  288.             default is /NoQuiet.
  289.  
  290.  
  291.  
  292.        ArcAnal 1.30 Users Manual                                 Page 10
  293.        ------------------------------------------------------------------
  294.  
  295.        Building a Database
  296.  
  297.        The database created by ArcAnal is the central aspect of the
  298.        program.  ArcAnal will create three files:
  299.  
  300.             [databasename].ARC
  301.  
  302.             Not to be confused with the archival program ARC, this file
  303.             contains information on each archive file within your file
  304.             areas.
  305.  
  306.             [databasename].CON
  307.  
  308.             This file contains information on the actual contents of the
  309.             files within the archives, and is linked back to the archive
  310.             entry within the file [databasename].ARC.
  311.  
  312.             [databasename].DIR
  313.  
  314.             This file is a list of all the physical directories where
  315.             your downloadable files are kept, and is linked back to the
  316.             archive entry within the file [databasename].ARC.
  317.  
  318.        [databasename] is an 8 character name that you define in the
  319.        configuration file.
  320.  
  321.        A database definition in the configuration file consists of two
  322.        primary sections:  the (1) database definition, and (2) file
  323.        sections belonging to that database.  The latter section is
  324.        optional.  It is possible to receive the database file another
  325.        system and perform analysis or file checks against that database.
  326.        This would primarily be used by File Networks to avoid releasing
  327.        duplicate files into the network.
  328.  
  329.        The Database Definition
  330.  
  331.        DatabaseName [database name]
  332.  
  333.             The database is used both as the base name of the actual
  334.             database files, and also as the name used on the command
  335.             line when referencing a database.  Unless you are using
  336.             HPFS and do intend on sending your database to another
  337.             system, it would be wise to keep the database name limited
  338.             to 8 characters.
  339.  
  340.        DatabaseDirectory [database directory]
  341.  
  342.             The database directory is the physical place your database
  343.             resides on your system.  Depending upon the number of
  344.             files in your collection, it could become quite large.
  345.             For example, a database of my OS/2 file collection of
  346.             around 2400 files took a total of about 700K.  My DOS
  347.             sections of around 450 files took a total of about 200K.
  348.  
  349.        After the above information is defined, all the file sections that
  350.        belong to this database must be defined.
  351.  
  352.  
  353.  
  354.        ArcAnal 1.30 Users Manual                                 Page 11
  355.        ------------------------------------------------------------------
  356.  
  357.        FileSection_FILESBBS [file name of FILES.BBS]
  358.  
  359.             This is the full path and filename of the FILES.BBS
  360.             associated with the file area.  Since some systems keep
  361.             their FILES.BBS files in a different directory, both this
  362.             file and the directory must be defined separately.
  363.  
  364.        FileSection_Directory [directory for downloadable files]
  365.  
  366.             This is the full path where the actual files are stored in
  367.             your file areas.
  368.  
  369.        There is no functional limit on the number of areas that can be
  370.        defined.  However, the areas must be defined in "couplets" with
  371.        FileSection_FILESBBS first, and then FileSection_Directory last.
  372.  
  373.        Once the database is defined in the configuration, execute ArcAnal
  374.        as follows to create the database:
  375.  
  376.             ARCANAL BUILD DATABASE [databasename]
  377.  
  378.        ArcAnal will then search each file area defined, determine if the
  379.        file is an archive that has been defined in the configuration
  380.        file, get a listing from the compressed file, and add the
  381.        information from that archive to the database.
  382.  
  383.  
  384.  
  385.        ArcAnal 1.30 Users Manual                                 Page 12
  386.        ------------------------------------------------------------------
  387.  
  388.        Updating a Database
  389.  
  390.        Once an initial database has been created, ArcAnal can be used to
  391.        scan the file areas for new files that are not within the
  392.        database.  ArcAnal will also check to see if an archive has been
  393.        moved or deleted.  If it has, it will delete the entry in the
  394.        database, and add the entry for the new file if it has been moved.
  395.  
  396.        To update the database, periodically (perhaps once a day in a
  397.        scheduled event) execute the following command:
  398.  
  399.             ARCANAL UPDATE DATABASE [databasename]
  400.  
  401.        Execute this command for each database defined on your system that
  402.        has file areas associated with it.
  403.  
  404.  
  405.  
  406.        ArcAnal 1.30 Users Manual                                 Page 13
  407.        ------------------------------------------------------------------
  408.  
  409.        Analyzing a Database and Creating Reports
  410.  
  411.        There are two types of analyses that can be performed.  One on the
  412.        actual archive file names, and one on the contents of the
  413.        archives.
  414.  
  415.        Originally, the analysis of a database was "disk-bound".  This
  416.        means that very little of the database was read into RAM, but
  417.        instead accessed directly from the disk.  The reason for this was
  418.        because the database could grow quite huge, and would consume a
  419.        great amount of RAM just to run.  However, after performing an
  420.        analysis on the contents of the archives which took about 6 hours
  421.        to run on a 486/33Mhz ESDI drive system, I decided to use RAM.
  422.        Please note that if you run OS/2 with 8MB of RAM, that you very
  423.        well may be hitting the SWAPPER quite a bit.  On an 486/33, 8MB
  424.        machine, ArcAnal could take up to 40 minutes on a large file
  425.        collection.  On a 16MB machine, it would take a couple of minutes!
  426.  
  427.        In order to execute an analysis and create a report, use the
  428.        following command:
  429.  
  430.        ARCANAL ANALYZE DATABASE [databasename]
  431.            /Output=<filename>                         : STDOUT
  432.            /Report=(DUPARCHIVENAMES, DUPCONTENTS)     : DUPARCHIVENAMES
  433.            /Include=(PATHS, DESCRIPTIONS, ADDRESSES)  : No Includes
  434.            /Basenum=<number>                          : 5
  435.            /Percent=<percent threshold>               : 80%
  436.            /[no]DateMatch                             : NoDateMatch
  437.            /[no]SizeMatch                             : NoSizeMatch
  438.  
  439.  
  440.  
  441.        ArcAnal 1.30 Users Manual                                 Page 14
  442.        ------------------------------------------------------------------
  443.  
  444.        Description of Options
  445.  
  446.        /Output=<filename>
  447.  
  448.             This is the file name of the report to produce.  If a
  449.             report file name is not specified, "standard out" (i.e.,
  450.             the screen) will be used.
  451.  
  452.        /Report=<report type>
  453.  
  454.             This is the type of report/analysis desired.
  455.             DUPARCHIVENAMES will create a report on the actual archive
  456.             file names.  DUPCONTENTS will create a comparison report
  457.             of all files against the files INSIDE the archive.
  458.  
  459.        /Include=<include keyword>
  460.  
  461.             This qualifier allows you to specify what additional
  462.             information you wish to be listed with each file entry in
  463.             the report.
  464.  
  465.             PATHS
  466.  
  467.             This will add the physical path name where the archive
  468.             resides on the disk at the end of the line entry in the
  469.             report.
  470.  
  471.             DESCRIPTIONS
  472.  
  473.             This will add the description as found in the FILES.BBS of
  474.             the file at the end of the line entry in the report.
  475.             Please be sure to use an editor that can accept VERY long
  476.             lines if you use this option!
  477.  
  478.             ADDRESSES
  479.  
  480.             This will add the address location of the entry in the
  481.             Database for the archive information at the end of the
  482.             line entry in the report.  If you decide to use this
  483.             report file as the input to the PURGE command of ArcAnal,
  484.             then this option is required.
  485.  
  486.        /Basenum=<number>
  487.  
  488.             This is only relevant for the DUPARCHIVENAMES report.  It
  489.             indicates how many characters of the filename to consider
  490.             "significant".  Thus, if /Basenum is 3, all files that
  491.             begin with the first 3 same letters will be grouped
  492.             together in the report.
  493.  
  494.        /Percent=<percent threshold>
  495.  
  496.             This is only relevant for the DUPCONTENTS report.  It
  497.             indicates how "close" a match is to be listed.  For
  498.             example, if you only want archives that match by at least
  499.             90%, then set /Percent to 90.  Unless /DateMatch or
  500.  
  501.  
  502.  
  503.        ArcAnal 1.30 Users Manual                                 Page 15
  504.        ------------------------------------------------------------------
  505.  
  506.             /SizeMatch is indicated, only file names will be used for
  507.             the percent threshold.
  508.  
  509.        /DateMatch
  510.  
  511.             This is only relevant for the DUPCONTENTS report.  This
  512.             indicates that you also want to use the dates of the files
  513.             when comparing the "percentage match".  Thus, if /Percent
  514.             is 90, and your specify /DateMatch, then only files that
  515.             match 90% of the filenames as well as 90% of the dates on
  516.             these files will be listed.
  517.  
  518.        /SizeMatch
  519.  
  520.             This is only relevant for the DUPCONTENTS report.  This
  521.             indicates that you also want to use the sizes of the files
  522.             when comparing the "percentage match".  Thus, if /Percent
  523.             is 90, and your specify /SizeMatch, then only files that
  524.             match 90% of the filenames as well as 90% of the sizes on
  525.             these files will be listed.
  526.  
  527.        The most stringent Archive Contents Report that can be created
  528.        would be one which only lists perfect matches.  This report would
  529.        be produced with the following command:
  530.  
  531.             ARCANAL ANALYZE DATABASE [databasename]
  532.                  /Report = DUPCONTENTS
  533.                  /Percent = 100
  534.                  /DateMatch
  535.                  /SizeMatch
  536.  
  537.  
  538.  
  539.        ArcAnal 1.30 Users Manual                                 Page 16
  540.        ------------------------------------------------------------------
  541.  
  542.        Archive Filename Report (DUPARCHIVENAMES)
  543.  
  544.        This report will report how many actual archive names are similar
  545.        to N number of characters.  For example, if you desire to know all
  546.        the files that all have the same first 5 characters, this report
  547.        will list them.  This is helpful to identify old versions of the
  548.        same program, since most archives simply change a version number
  549.        at the end of the archive name.  For example, Rob Hamerling's BBS
  550.        utility DOWNSORT (source code archive) uses the following naming
  551.        conventions:
  552.  
  553.        DWNSRS54.ZIP |   83319 | 12/19/1991 20:06:00 |  14
  554.        DWNSRS53.ZIP |   81567 | 10/18/1991 22:20:00 |  20
  555.        DWNSRS55.ZIP |   88120 | 01/31/1992 20:41:00 |  16
  556.  
  557.        These three files are reported as a "group" with matching file
  558.        names to 7 characters.
  559.  
  560.        The fields on each line of the report are as follows:
  561.  
  562.        [archive file name]
  563.  
  564.             The name of the archive with no path.
  565.  
  566.        [archive size]
  567.  
  568.             The size of the archive file in bytes.
  569.  
  570.        [archive date]
  571.  
  572.             The date (last write date) of the archive.
  573.  
  574.        [number of files]
  575.  
  576.             The number of files within the archive.
  577.  
  578.        [additional included information]
  579.  
  580.             Depending upon the /Include option, there may also
  581.             additional information at the end of the line.
  582.  
  583.  
  584.  
  585.        ArcAnal 1.30 Users Manual                                 Page 17
  586.        ------------------------------------------------------------------
  587.  
  588.        Archive Contents Report (DUPCONTENTS)
  589.  
  590.        This report is much more extensive than the 'Archive Filename
  591.        Report'.  This analysis will compare the contents of each archive
  592.        against the contents within all other archives in the database.
  593.        It will report on all the "best matches".  Matches are determined
  594.        by the amount of "likeness" the files are to files within other
  595.        archives.  This "likeness" is expressed as a percentage.  Thus, if
  596.        ARCHIVE A is like ARCHIVE B by 82%, this means that 82% of the
  597.        files in ARCHIVE A match ARCHIVE B.  Thus, if there is a 100%
  598.        match, this means one of two things:
  599.  
  600.             ARCHIVE A is identical to ARCHIVE B, or
  601.             ARCHIVE A is wholly contained with ARCHIVE B.
  602.  
  603.        Matches less than 100% usually indicate a previous version of the
  604.        same program.
  605.  
  606.        Percentage matches are given on three different aspects of the
  607.        archive:
  608.  
  609.             1.   Percentage likeness of filenames.
  610.             2.   For all filenames that are identical, percentage
  611.                  likeness of the dates of these files.
  612.             3.   For all filenames that are identical, percentage
  613.                  likeness of the sizes of these files.
  614.  
  615.        Thus, a match of 100% of all these aspects means that, as in the
  616.        above example, the report will indicate one of the following:
  617.  
  618.             "Perfect Match"
  619.  
  620.             This means that all the above percentages are 100% and that
  621.             there are exactly the same number of files in each archive.
  622.             This is a "perfect match", regardless of the archive
  623.             filenames.
  624.  
  625.             "Included Within"
  626.  
  627.             This means that there is a 100% percent match on all the
  628.             above aspects (filename, dates, and sizes), but that there
  629.             are more files in ARCHIVE B than ARCHIVE A.  Thus ARCHIVE A
  630.             is "included within" ARCHIVE B.
  631.  
  632.        Thus, when comparing 'DWNSRS54.ZIP' to the database, it finds two
  633.        matching references.
  634.  
  635.        DWNSRS54.ZIP |   83319 | 12/19/1991 20:06:00 |  14
  636.  
  637.        DWNSRS53.ZIP |   81567 | 10/18/1991 22:20:00 |  20 |
  638.             100% match on filenames
  639.               0% match on file dates
  640.              14% match on file sizes
  641.  
  642.        DWNSRS55.ZIP |   88120 | 01/31/1992 20:41:00 |  16 |
  643.             100% match on filenames
  644.               7% match on file dates
  645.  
  646.  
  647.  
  648.        ArcAnal 1.30 Users Manual                                 Page 18
  649.        ------------------------------------------------------------------
  650.  
  651.              14% match on file sizes
  652.  
  653.        The fields on each line of the report are as follows:
  654.  
  655.        [archive file name]
  656.  
  657.             The name of the archive with no path.  This will be either
  658.             the "Source" archive (i.e., the first name listed in the
  659.             group), or the "Match" archive (all other files in the
  660.             group) that match the source archive.
  661.  
  662.        [archive size]
  663.  
  664.             The size of the archive file in bytes.
  665.  
  666.        [archive date]
  667.  
  668.             The date (last write date) of the archive.
  669.  
  670.        [number of files]
  671.  
  672.             The number of files within the archive.
  673.  
  674.        [percent file name match]
  675.  
  676.             The percentage of file names within the archive that match
  677.             the Source archive.
  678.  
  679.        [percent file date match]
  680.  
  681.             The percentage of file names with the same file name and
  682.             date within the archive that match the Source archive.
  683.  
  684.        [percent file size match]
  685.  
  686.             The percentage of file names with the same file name and
  687.             size within the archive that match the Source archive.
  688.  
  689.             PLEASE NOTE:  The above three percentages may be replaced
  690.             with the following keywords: "Perfect Match" or "Included
  691.             Within".
  692.  
  693.        [additional included information]
  694.  
  695.             Depending upon the /Include option, there may also
  696.             additional information at the end of the line.
  697.  
  698.  
  699.  
  700.        ArcAnal 1.30 Users Manual                                 Page 19
  701.        ------------------------------------------------------------------
  702.  
  703.        Resetting Archive Dates
  704.  
  705.        A side benefit of having all the archive information "at your
  706.        fingertips" is the ability to reset the dates on the archives to
  707.        something more appropriate.  Many times the "true" date of the
  708.        archive becomes lost during the uploading of a file, or transfer
  709.        of the file through a network.  Thus, ArcAnal can stamp the date
  710.        of the archive with the date of the newest file WITHIN the archive
  711.        with a valid date.  I say "valid" since, in the process of writing
  712.        this program, I have found many archives with incorrect dates
  713.        and/or times.  Some archives had files within them that were dated
  714.        years into the future, while others had files that were stamped
  715.        with the time "02:62" where "62" was in the minutes field.  If
  716.        ArcAnal cannot find any files with a valid date, then it will to
  717.        attempt to change the date on the archive.
  718.  
  719.        To execute ArcAnal to time stamp the archives, issue the following
  720.        command:
  721.  
  722.             ARCANAL RESETDATES DATABASE [databasename]
  723.                  /LastWrite
  724.                  /Creation
  725.  
  726.        Description of Options
  727.  
  728.        /LastWrite
  729.        /Creation
  730.  
  731.             Under HPFS, most programs and commands, such as DIR,
  732.             display the "last write" date of a file.  This is the date
  733.             that the file was last modified.  Some also access the
  734.             creation date.  This is normally the date the program
  735.             arrived on your system.  Thus, as in the case of Rob
  736.             Hamerling's program DOWNSORT, it is possible to list the
  737.             true file date, but indicate that this file is new to your
  738.             system.  This is also true of Maximus.  When it is
  739.             displaying "new files", it will display the date of the
  740.             "last write", but base the date search on the "creation
  741.             date" of the file.
  742.  
  743.             The default for ArcAnal is /Lastwrite (reset the "last
  744.             write" date) and /NoCreation (do not reset the "creation
  745.             date" of the file).
  746.  
  747.  
  748.  
  749.        ArcAnal 1.30 Users Manual                                 Page 20
  750.        ------------------------------------------------------------------
  751.  
  752.        Displaying A Database
  753.  
  754.        During the testing of ArcAnal, I wanted to see what the database
  755.        said was really in the database.  So, being naturally curious, as
  756.        well as suspicious, I created the following command:
  757.  
  758.             ARCANAL DISPLAY DATABASE [databasename]
  759.  
  760.  
  761.  
  762.        ArcAnal 1.30 Users Manual                                 Page 21
  763.        ------------------------------------------------------------------
  764.  
  765.        Purging Your File Collection
  766.  
  767.        At this point, I will assume that you have read the sections on
  768.        building a database and creating an analysis report.  You must do
  769.        these two things before you can purge and/or update your file
  770.        collection based on the information in your analysis report.
  771.  
  772.        Purging your file collection is easy.  It is so easy, in fact,
  773.        that I strongly urge you to perform a full backup of your file
  774.        collection before executing this command.  In order to use a
  775.        report as input to the PURGE command, you must be sure to specify
  776.        /Include=(Addresses,...), or else ArcAnal will not know where to
  777.        find the archive information in the database.
  778.  
  779.        BE SURE TO ONLY USE CURRENT REPORTS!  If you use a report file
  780.        that was based on an old database, the address locations of file
  781.        entries may have changed.  There is "safety net" logic to attempt
  782.        to stop this from happening if you use an out-dated report, but it
  783.        is still a good idea to make sure that your report file matches
  784.        the current database.
  785.  
  786.        You will notice that each report created by ArcAnal has two
  787.        leading blanks before each line.  This is so you can put an
  788.        "action character" before a line entry in the report.  The action
  789.        characters available are as follows:
  790.  
  791.             "-" (minus sign)
  792.  
  793.             If you put a minus sign in the first column of the report,
  794.             ArcAnal will purge the file from the system.  This means
  795.             that it will delete the entry from the database, delete
  796.             the actual physical file, and remove the entry from the
  797.             FILES.BBS.  In other words, it is GONE!
  798.  
  799.             "+" (plus sign)
  800.  
  801.             If you put a plus sign in the first column of the report,
  802.             ArcAnal will update the file description of the entry.
  803.             This means that you must specify
  804.             /Include=(descriptions,...) when creating the report.
  805.             This is handy when you have several matches for a file,
  806.             and want to choose the "best" file description for the
  807.             entry.  Simply "cut-and-paste" the description from one of
  808.             the other entries that are going to be deleted from your
  809.             system to the file line that you are keeping.  ArcAnal
  810.             will update the appropriate FILES.BBS.
  811.  
  812.        It is very important to make sure that your editor is in
  813.        "overwrite" mode.  DO NOT CHANGE THE COLUMN ALIGNMENT of the
  814.        report.  ArcAnal will become confused as to where the actual
  815.        archive file name is located.
  816.  
  817.  
  818.  
  819.        ArcAnal 1.30 Users Manual                                 Page 22
  820.        ------------------------------------------------------------------
  821.  
  822.        Cleaning Up Your File Sections
  823.  
  824.        The following is an example of exactly how I used ArcAnal to find
  825.        duplicate archives and purge/update my file sections.
  826.  
  827.        1.   Define all the file sections.
  828.  
  829.             Look with the ArcAnal.Cfg file included with the program.
  830.             Within it you will find all the definitions for my file
  831.             sections called LocalOS2 (case is not significant).  File
  832.             sections must first be defined before creating a database.
  833.  
  834.        2.   Create the Database.
  835.  
  836.             I executed the command:
  837.  
  838.             ARCANAL BUILD DATABASE LocalOS2
  839.  
  840.             On a 2400 file collection, this took about 30 minutes to
  841.             run.  ArcAnal must execute the archive program for each
  842.             file, get the listing, and update the database with this
  843.             information.
  844.  
  845.        3.   Reset all the dates on the archive files.
  846.  
  847.             In order to produce an accurate report, I reset all the
  848.             archive dates.  This made it much easier to identify
  849.             archives which were really older than others which were
  850.             "close matches".
  851.  
  852.        4.   Create an analysis report.
  853.  
  854.             I executed the command:
  855.  
  856.             ARCANAL ANALYZE DATABASE LocalOS2
  857.                  /Output=OS2.RPT
  858.                  /Report=dupcont
  859.                  /Include=(path,desc,address)
  860.                  /Percent=100
  861.  
  862.        5.   Edit the report file
  863.  
  864.             Here are sections of the report OS2.RPT and how I changed
  865.             them.  Please note that I am not including the /Include
  866.             information that was at the end of each file line since it
  867.             would not fit within an 80 column document.  But when you
  868.             execute ArcAnal, you will see all the path, address, and
  869.             description information after column 80.
  870.  
  871.  
  872.  
  873.        ArcAnal 1.30 Users Manual                                 Page 23
  874.        ------------------------------------------------------------------
  875.  
  876.  
  877.   Example sections from report file OS2.RPT:
  878.  
  879.   ==============================================================================
  880.   Archive Contents Analysis Report
  881.  
  882.   Report contents:  A comparison of all archives against one another based on
  883.                     actual contents of the archive, regardless of archive
  884.                     filename.  Content match of at least 100% will be reported.
  885.  
  886.                     Selection for 100% threshold will be based on:
  887.                         File names within the archives
  888.   ==============================================================================
  889.  
  890. - Source : DLC_221.ARJ  |   12600 | 01/15/1992 23:04:12 |   3
  891. - Matches: DLC_223.ARJ  |   14437 | 02/15/1992 15:14:24 |   3 | 100%/  0%/  0%
  892. -          DLC_230.ARJ  |   16049 | 06/24/1992 01:26:40 |   3 | 100%/  0%/  0%
  893.            DLC_243.ARJ  |   28476 | 08/26/1992 14:31:18 |   6 | 100%/  0%/  0%
  894.   ------------------------------------------------------------------------------
  895. - Source : LASTCALL.ZIP |    6360 | 11/07/1991 21:06:00 |   2
  896. + Matches: LASTCAL2.LZH |   10907 | 12/23/1991 20:51:28 |   3 | 100%/  0%/  0%
  897.   ------------------------------------------------------------------------------
  898.  
  899.      The above are two good examples of how ArcAnal identifies older
  900.      versions of the same program.  Notice that I marked 'LASTCAL2.LZH'
  901.      with a plus sign.  I liked the description on 'LASTCALL.ZIP', which I
  902.      marked for deletion, so I replaced the description at the end of the
  903.      line (not shown here) of 'LASTCAL2.LZH' with the description of
  904.      'LASTCALL.ZIP'.
  905.  
  906. - Source : ANSIFUN.ZIP  |    5018 | 09/18/1990 19:13:00 |   1
  907. + Matches: REXXANSI.ZIP |    5024 | 09/18/1990 19:13:00 |   1 | Perfect Match
  908.   ------------------------------------------------------------------------------
  909.  
  910.      The above is a good example of two files which are internally
  911.      identical, but have different archive names.
  912.  
  913. - Source : TIME10.ZIP   |    7366 | 03/04/1990 17:18:00 |   2
  914.   Matches: FREEMEM2.ZIP |   17723 | 03/04/1990 17:18:00 |   4 | Included Within
  915.            METZ.ZIP     |   18432 | 03/04/1990 17:18:00 |   4 | Included Within
  916.   ------------------------------------------------------------------------------
  917.  
  918.      The above is a good example of a program that is wholly included
  919.      within another archive.  Probably at some point someone extracted only
  920.      the 'TIME' utility from the set and sent it out on the network,
  921.      instead of keeping all the utilities together in one archive.
  922.  
  923. - Source : EABK10.ZIP   |   53526 | 04/21/1992 18:37:00 |   3
  924. - Matches: EABK101.ZIP  |   53526 | 04/21/1992 18:37:00 |   3 | Perfect Match
  925.            EABK20.ZIP   |  106147 | 07/09/1992 19:50:00 |   4 | 100%/  0%/  0%
  926.   ------------------------------------------------------------------------------
  927.  
  928.      The above is interesting in that supposedly version 1.0 and 1.01 are
  929.      different, as would be expected from their different version numbers,
  930.      but are really identical when looking at the contents of each archive.
  931.      'EABK20.ZIP' is clearly an update, since 100% of the file names are
  932.      the same, but there is no match on date or file size.
  933.  
  934.  
  935.  
  936.        ArcAnal 1.30 Users Manual                                 Page 24
  937.        ------------------------------------------------------------------
  938.  
  939.  
  940. - Source : KEYLOCKS.ZIP |   11624 | 04/03/1992 19:26:00 |   2
  941. - Matches: KLOCKS.ZIP   |   11624 | 04/03/1992 19:26:00 |   2 | Perfect Match
  942. +          KLOCKS10.ZIP |   12203 | 04/03/1992 19:26:00 |   2 | Perfect Match
  943.   ------------------------------------------------------------------------------
  944.  
  945.      The above is a perfect example of releasing several archives into a
  946.      file distribution network, but changing their file names.  Notice I
  947.      deleted two archives, and updated the description on the one I kept.
  948.  
  949. - Source : MEMSIZ.ZIP   |   50137 | 02/17/1992 12:46:00 |  15
  950. - Matches: MEMSZ124.ZIP |   50036 | 04/03/1992 11:17:00 |  15 | 100%/ 67%/ 80%
  951.            MEMSZ125.ZIP |   50095 | 05/15/1992 10:09:00 |  15 | 100%/ 67%/ 80%
  952.   ------------------------------------------------------------------------------
  953.  
  954.      The above is another good example of multiple versions of the same
  955.      program, where 100% of the file names matched identical, 67% of the
  956.      file dates were the same, and 80% of the file sizes were the same.
  957.  
  958.  
  959.   Source : BOOT20.ZIP   |   27982 | 08/21/1992 08:33:00 |   5
  960. - Matches: SE20BOOT.ZOO |   25661 | 08/21/1992 08:33:12 |   5 | Perfect Match
  961.   ------------------------------------------------------------------------------
  962.  
  963.      Once again, regardless of archive file name or archive TYPE, archives
  964.      with identical contents are matched.
  965.  
  966. - Source : KRNL0617.ZIP |  455907 | 06/19/1992 16:38:00 |   5
  967.   Matches: OS2KRNL.ZIP  |  455907 | 06/19/1992 16:38:00 |   5 | Perfect Match
  968.   ------------------------------------------------------------------------------
  969.  
  970.      Here is a very good example of a perfect matched file, and how ArcAnal
  971.      can save you quite a bit of room in your download areas (or prevent
  972.      something from being redundantly released within a file distribution
  973.      network).
  974.  
  975.  
  976.  
  977.        ArcAnal 1.30 Users Manual                                 Page 25
  978.        ------------------------------------------------------------------
  979.  
  980.  
  981.  
  982.        5.   Purge the file sections using the edited report file.
  983.  
  984.             Now that the report has been edited with the appropriate
  985.             "action characters" in column 1, I used this report as an
  986.             input file for ArcAnal.  I executed the following command:
  987.  
  988.             ARCANAL PURGE DATABASE LocalOS2
  989.                  /Input=OS2.RPT
  990.  
  991.        After the operation for each file marked with an "action
  992.        character" has been successfully completed, the action character
  993.        will be replaced with an asterick (*).  Thus, if the purge is not
  994.        entirely successful, it can be restarted with the same report file
  995.        after the problem has been corrected.
  996.  
  997.        And that's it!  The file areas are purged and/or updated depending
  998.        upon the actions indicated in the report OS2.RPT.