home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / filedocs / simraz13.arc / SIMRAZOR.DOC < prev    next >
Text File  |  1989-12-18  |  7KB  |  168 lines

  1.  
  2.                           S I M R A Z O R  1.3
  3.                           ====================
  4.  
  5.               A squeezing utility for SIMIBM file indices
  6.  
  7.                        TapirSoft Gisbert W.Selke
  8.                              December 1989
  9.  
  10.  
  11. The index to the the  Info-IBMPC lending library, as stored  on Simtel20
  12. and redistributed by various other  servers, is quite handy for  finding
  13. public domain  or shareware  programmes you  are looking  for. Since  it
  14. comes in standard mailmerge format, it is easy to import into just about
  15. every database programme you like.
  16.  
  17. However, it is quite  large, and if you  keep it on your  harddisk, gone
  18. are a few hundred  kilobytes of space. That's  the price you pay...  But
  19. wait! You can save some of that  room, if you think about it: you  don't
  20. need the  'disk' field  at all,  since it  is always  "PD1:". Then,  the
  21. 'directory' field invariably contains  the string "<MSDOS", hence,  this
  22. is redundant,  too. The  'version' field  is mostly  useless, since  the
  23. version number is generally recorded within the file name; and, at least
  24. for some of us, the 'type' field (i.e., 7 or 8 bits) is irrelevant, too.
  25. (You can usually tell the type from the file extension, anyway.)
  26.  
  27. Thus, throwing out the superfluous items, we can save some 60 KB,  given
  28. the 4000-odd files that are in  the archives as of this writing  - which
  29. is quite  a lot  for someone  chronically pressed  for disk  space, like
  30. myself!
  31.  
  32. So there you are.
  33.  
  34. As an added bonus, or rather,  as a left-over from olden times,  several
  35. input files may be merged into one output file. Note that no sorting  is
  36. performed; each individual input file must come sorted.
  37.  
  38.  
  39. Since not everyone may like my opinions on what is relevant, I made  all
  40. the items configurable via the command line; so you specify
  41.  
  42. - the names of the input files (up to five; you never know what happens
  43.   next...);
  44.  
  45. - the name of the output file (one only);
  46.  
  47. - the output fields, in the order you prefer, optionally with maximum
  48.   field widths (up to fifteen output fields are possible). Output widths
  49.   may be negative, in which case the right-most part of the field is
  50.   considered to be more significant.
  51.  
  52. An input  file specification  looks like  this: '/Ifoobar'  (without the
  53. quotes,  of  course).  If  you  specify  no  extension,  '.IDX' is added
  54. automatically.
  55.  
  56. The output file  specification looks like  '/Obarfly'; again, '.IDX'  is
  57. added, if no extension is present.
  58.  
  59. The  specification  of  output  fields  is slightly more complicated; it
  60. works like  this: label  the eight  fields in  the input  files with the
  61. letters 'A' to 'H', plus the special letters 'I' and 'J':
  62.  
  63. A : disk                           F : file type
  64. B : directory                      G : file date
  65. C : file name                      H : description of contents
  66. D : version number                 I : sub-field of B: major directory
  67. E : file size                      J : sub-field of B: subdirectory
  68.  
  69. The last  two may  be used  to split  the directory  name, like '<MSDOS.
  70. FILEDOCS>', into its components, 'MSDOS' and 'FILEDOCS'.
  71.  
  72. Now you refer to them as '/FA', '/FB', etc. - Optionally, you may add  a
  73. maximum field width right after the field letter; SIMRazor will truncate
  74. fields that are longer, depending on  the field type: if a field  is too
  75. long and  it is  numeric, the  field is  replaced by  all 9's;  if it is
  76. alphabetic, it is truncated from the right. E.g., '/FE6' will make  sure
  77. that no file size is larger  than 6 digits. (Yes, there is  actually one
  78. file there that is larger than  1 MB; with '/FE6', your database  import
  79. programme will not cough  on this any longer.)  - On the other  hand, if
  80. the field width is negative,  truncation of text fields starts  from the
  81. left; this allows you to extract, e.g., the '2' from the directory  name
  82. '<MSDOS2.MODEM>'. - There is one  special case: the 'I' field  is padded
  83. with a blank on the right, if it contains a simple 'MSDOS'.
  84.  
  85. All  input  is  case-insensitive.  Note  that the various parameters are
  86. separated by spaces, but that there are no spaces within parameters.
  87.  
  88.  
  89. Of  course,  you  won't  want  to  keep all this in your (biopositronic)
  90. memory; so if you call SIMRazor without parameters, you'll get the usual
  91. old usage screen. At  any rate, I suggest  you figure out what  you like
  92. best, and  then prepare  a batch  file, like  the one  supplied in  this
  93. package. That way,  you can safely  forget all of  this. You might  also
  94. bundle  the  unarchiving  process  and  the  import  into  your database
  95. programme into this batch file.
  96.  
  97. If all this sounds very confusing,  here are a few standard examples  of
  98. how to call SIMRazor:
  99.  
  100. SIMRAZOR /Fa /Fb /Fc /Fd /Fe /Ff /Fg /Fh /Isimibm /Inodescr /Osimboth
  101.    ---> just merge two old-style files; no editing done
  102.         output sent to SIMBOTH.IDX
  103.  
  104. SIMRAZOR /Fb /Fc /Fe6 /Ff /Fg /Fh /Isimibm /Osimibm1
  105.    ---> use one file only, drop 'disk' and 'version', check 'size' field
  106.         output sent to SIMIBM1.IDX
  107.  
  108. SIMRAZOR /Fh30 /Fc /Isimibm /Osimshort.txt
  109.    ---> file descriptions (up to 30 chars), then file name, nothing else
  110.         output sent to SIMSHORT.TXT
  111.  
  112. SIMRAZOR /Fi-1 /Fj11 /Fc /Fe6 /Fg /Fh /Isimibm /Osimshort
  113.    ---> merge the two files, using only relevant items, checking 'size',
  114.         extracting the MSDOS directory number
  115.         output sent to SIMBOTH.IDX
  116.  
  117.  
  118. With this last call, and for  some 4000 files in the archives,  SIMRazor
  119. takes less  than half  a minute  on my  10 MHz  AT clone,  with a  40 ms
  120. harddisk.
  121.  
  122.  
  123. Enjoy!
  124.  
  125.  
  126.  
  127. History:
  128.  
  129. 1.2      15 Oct 1989  First release to the public.
  130.  
  131. 1.3      18 Dec 1989  Adapted to changed directory structure at SIMTEL
  132.                       by allowing negative field widths and directory
  133.                       name splitting. Quite a kludge; but what the heck,
  134.                       it saves disk space.
  135.  
  136.  
  137. The usual boring stuff:
  138.  
  139. This programme was compiled with Borland's TurboPascal 5.5 compiler.  It
  140. has been tested under MS DOS 3.3,  on a 640kB AT clone. There should  be
  141. no problem recompiling with other versions of TurboPascal (maybe  adjust
  142. compiler switches...), or  running it under  other versions of  DOS. For
  143. each file, it tries to grab  64kB memory for i/o buffering; if  it finds
  144. none, that should  be no problem  either - it  will just take  longer to
  145. run.
  146.  
  147. This programme  is copyrighted  by me,  but it  may be  used and  copied
  148. freely, without any restrictions but one: don't pass on parts of this  -
  149. always  give  it  away  as  a  whole,  i.e.,  executable,  source,   and
  150. documentation.
  151.  
  152. This programme runs fine  on my system, but  I don't promise, let  alone
  153. guarantee, that it will do anything you'd like it to. The whole risk  of
  154. using it lies with you.
  155.  
  156.  
  157. MS DOS is a trademark of MicroSoft Corporation.
  158. TurboPascal is a trademark of Borland International.
  159.  
  160.  
  161. Comments and suggestions for improvement are welcome; address them to:
  162.  
  163. Gisbert W.Selke
  164. Ermekeilstraße 28
  165. D-5300 Bonn 1
  166. West Germany
  167.  
  168.