@database NameStripV1.0
@remark $VER: NameStrip.guide 1.0 (September 94)
@node MAIN
@title "ŽNameStrip V1.1 By SlingShot/Dimentia U.K A.K.A James Allen"
       ********************************************************
                     @{fg highlight}ŽNameStrip V1.0 (14/9/94)@{fg text}
                     --------------------------
                       @{b}By $LiNg$HoT/DiMeNTiA@{ub}
                       ---------------------
                      @{" Introduction          " link INTRO}
                      @{" Standard Disclaimer   " link DISCLAIMER}
                      @{" Requirements          " link REQUIRE}
                      @{" Usage                 " link USAGE}
                      @{" Features              " link FEATURES}
                      @{" Bugs                  " link BUGS}
                      @{" History               " link HISTORY}
                      @{" Greets                " link GREETS}
                      @{" Contacting the author " link CONTACT}

       ********_*******************************************_***
          _   //   Only Amiga Makes It Possible!      _   //
          \\\\ //           Intel Outside               \\\\ //
           \\X/     The Choice For A New Generation     \\X/
       ********************************************************
@endnode

@node INTRO "What the hell is NameStrip?"
@next DISCLAIMER
PLEASE  READ THROUGH EACH SECTION OF THESE DOCS AS IMPORTANT INFO IS LINKED
FROM CERTAIN PAGES WHICH ARE NOT ACCESIBLE FROM THE MENU.
BROWSE>  AND  BROWSE<  CAN BE USED TO MOVE THROUGH EACH MENU ITEM ONLY, NOT
EVERY SUB SECTION!

Welcome to NameStrip, a little ( Well maybe not ) program that will scan a
directory and optionally all sub-directories looking for files that contain
spaces in them. If it finds any it will strip the spaces and tidy the
filename up. An example of a filename, NameStrip would modify is:

@{fg highlight}"A lovely big sample.iff"@{fg text}

NameStrip would rename this to:

@{fg highlight}ALovelyBigSample.iff@{fg text}

The  reason for needing to do this is due to the way in which some programs
handle file names.  Some programs only read the first word in a filename if
it  has  any  spaces in it, and will therefore report an error.  My program
allows  you  to  get rid of this error and to tidy up your filenames in one
go.   Also,  when  referencing  files on the command line files with spaces
must  be  enclosed  in  quotes  and this can get a bit annoying!  NameStrip
stops this :)

NameStrip  will  also  create  a  log  file in RAM:Log if the LOG switch is
included on the command line.  The logfile will contain all changes made to
filename  as  well  as any naming convention errors that occur.  The log is
useful  as if you get any errors from programs unable to find certain files
you can use the log to locate where the change was made.

I wrote NameStrip after writing @{"GuideCompiler" link GUIDECOMPILER} as I came across a problem in
AmigaGuide.   GuideCompiler  scans a directory and builds up a catalogue of
files.   These  files  are  then  linked to a file viewer.  The problem is,
within  AmigaGuide,  I  have  to  use  the  SYSTEM  command  to execute the
fileviewer  along  with  the filename.  This only allows you to pass over 1
string  and  therefore  has  to  contain  the  name  of  the viewer and the
filename.   If  the  filename  has  spaces  in, only the first word will be
passed  over due to the fact that I cannot enclose the filename is quotes (
1  string  remeber!   ).   As  you  can imagine this made me very angry and
luckily  before  I put my fist through the monitor, I came up with the idea
for StipName!

NOTE:  Makesure that if you are going to use NameStrip that the files to be
changed  are  not referenced by any assigns, scripts or other programs.  If
they  are, you may find that after NameStrip has been run that some of your
other  programs  stop working suddenly!  Usually, a simple change of a name
in  a  script  or  config  file  will solve the problem, but just check the
directories before running NameStrip!

Also, there are some naming convention errors that can occur due to the way
in  which  AmigaDOS  handles  filenames.   These  are described in the @{"bugs" link BUGS}
section of this guide.

@endnode

@node DISCLAIMER "So, what is my legal status MR Cheese?"

NameStrip  is Public Domain and thus is free to be used by anyone who has a
use for it.

You  use  NameStrip at you own risk and I cannot be held reponsible for any
damage  caused by use or misuse of the program.  Not that I'm expecting any
problems  to  arise,  but any use of a program that reads/writes files on a
harddrive  COULD  in  some  extreme  circumstances  cause  problems.  These
circumstances  could  be hardware failure, software failure or user failure
and  should not be attributed to my program ( although bugs do occur in the
strangest of instances ;} )

NameStrip  has  been  written in AREXX but has been compiled to protect the
code  ( not that it's amazing or anything but..  ).  This not only protects
my  routines  but means that it is easier to run and the user does not have
to mess about with the RX command or script bits!

I may at some time or another decide to release the source depending on how
I feel about it :)

NameStrip is written by: James Allen A.K.A SlingShot/Dimentia U.K

Feel  free  to  @{"contact" link CONTACT}  the author at any time, for bug reports or to talk
about AREXX.  :)

@endnode

@node REQUIRE "What ya need.."
@prev DISCLAIMER
@next USAGE
@{fg highlight}NameStrip V1.0 needs:@{fg text}
-------------------------

OS2.0+
RexxMast ( The Arexx interpreter running )
The following AmigaDOS commands in C: ( sys:c/ )
- SORT
- LIST
- DELETE

@{" Why use AmigaDOS commands? " link COMMANDS}

@endnode

@node COMMANDS "Why have I used the DOS commands?"
@next REQUIRE
@prev REQUIRE
@{fg highlight}The  following  description contains technical terms which some people will
not understand.@{fg text}

When  I  first  learnt AREXX, I didnt know there was a command in the AREXX
support  library  that  allowed  directories  to  be  scanned and the files
returned  to  a variable.  Therefore I used my own technique of redirecting
the output of the list command to RAM:  and sorting it.

I  now  know  how  to use the inbuilt support function ShowDir() but I have
decided  against  using  it in this instance.  The problem is, due to AREXX
being an interpreted language it aint the fastest thing around.  Therefore,
just  like  a  C  coder might use the AmigaDOS functions in dos.library for
extra  speed,  I  have  decided  to  use the AmigaDOS commands in C:.  This
system  works  faster  than it would if I used ShowDir() because using that
would involve:

1. Reading the directory into a single simple symbol. ( A Variable )
2. Spliting it up into a set of compound symbols. ( An array )
3. Sorting it using a quick sort. 

Even  on  my 030/40Mhz this all takes alot of time in AREXX and so by using
AmigaDOS  commands the running of the program is improved.  I make LIST and
SORT  resident  and  so  they donnot need to be repeatedly loaded off disk.
This of course takes alittle bit of memory but not much.

Using  my current technique I redirect the output of list to ram creating 2
files  holding  the  files  and  the  directories.   I then read these into
compound  symbols.   This is alot faster than using the above method, but I
suppose  reading them into an array takes alittle bit of time.  Still, I am
happy with the speed my program runs at, and dont think it could be speeded
up  much  more.   If  it  doesnt run very fast on your system, @{"mail me" link CONTACT} your
system setup as I am interested on how it runs on slower machines.

I  have  written  a number of procedures which use the above techniques and
these  allow me to write other AREXX programs that need to scan directories
quickly and easily.

@endnode

@node USAGE "So.....How do I use it then?"
@prev REQUIRE
@next FEATURES
Before  running  NameStrip, the AREXX interpreter RexxMast MUST be running.
If  this  is  not run from your Startup-sequence or User-Startup, go to the
CLI and type:

@{fg highlight}run >nil: sys:system/rexxmast@{fg text}

IF  you  want  it  to  be  run  every  time,  place  the above line in your
startup-sequence  OR user-startup.  You could also merely drag the RexxMast
file from sys:system into your sys:WBStartUp drawer and this would have the
same effect.

Usage is pretty straight forward. Here is the standard AmigaDOS template:

NameStrip @{fg highlight}SOURCE/A,LOG/S,ALL/S@{fg text}

SOURCE  - This is the Source directory from where scanning begins.
LOG     - This switch selects whether a LOG file should be produced.
ALL     - This switch specifies whether sub-directories are scanned.

Note:   The  log  file  is written to RAM:Log and contains every change the
program  makes  and  any  problems  it  encounters  due  to  strange naming
conventions.

The following example would scan text: and all it's sub-directories
creating a LOG file in RAM:Log.
        
1> @{fg highlight}NameStrip text: log all@{fg text}

@endnode

@node FEATURES "It strips spaces out of names for gods sake! :)"
@prev USAGE
@next BUGS
@{fg highlight}V1.0 Features:@{fg text}

- Strips the spaces out of filenames.
- Optionally scans all sub-directories.
- Will capatalise each word in the file name to make it look better.
- Wont capatalise 'mod.' or any 4,3 or 2 letter extension. E.G .txt .pp
- Will allow @{"GuideCompiler" link GUIDECOMPILER} to function at 100%!

@endnode

@node GUIDECOMPILER "A useful program...!"
@{fg highlight}GuideCompiler V1.1 By $LiNg$HoT@{fg text}
-------------------------------

Will  create  an  ŽAmigaGuide document and fill it with links to files in a
specified  directory.   Each  file  is  linked  to  a  text  viewer  or the
ŽAmigaGuide  program  itself,  with  the  MultiView program being used as a
default  to  viewing  text  files.   An  environmental  variable is used to
specify  the  standard  text viewer if you wish to use something other than
MultiView.

GuideCompiler  will  also  optionally  scan  recursively through the source
directory  and  build up a complex guide of all the files stored.

Each  directory  has  it's own page which contains files and then the other
directories if there are any.  This means that tranversing a directory tree
is  simply a matter of clicking on the desired directory on each page until
the required file is located.

Try it...I'm sure you'll like it!

@endnode

@node BUGS "Arhhhhh no not them....!"
@prev FEATURES
@next HISTORY
@{b}KNOWN BUGS in V1.0@{ub}
------------------
@{fg highlight}Amigados  uses  characters  such as # and () for other things and so rename
does not work on files with these characters in the name.@{fg text}

@{b}Solution:@{ub} To manually rename each file with these characters in them using
a directory util like FileMaster, Dir Work or Directory Opus.

Note:   My  program  will  detect  if  a filename contains 1 or more of the
symbols  that  rename cannot handle and will output a message to screen and
the optional log file.

@{fg highlight}Filenames  which  have  extra  spaces  at  the beginning or end will not be
handled.@{fg text}

The  problem  here  is due to the way I read in the filenames.  I strip all
leading and trailing spaces from the name and have noway to detect trailing
spaces anyway.  It's being worked on!  :)

@endnode

@node HISTORY "What has been changed and added.."
@prev BUGS
@next GREETS
@{fg highlight}NameStrip.rexx Version History@{fg text}
------------------------------

V1.0 - 14/9/94 (Released: 6/3/95 - Included with GuideCompiler 1.1)

 - A program to strip the spaces out of file names.
 - Will scan a directory and it's sub-directories.
 - LOG switch for producing a log in Ram:log.
 - Will capatalise each word in the file name to make it look better.
 - Wont capatalise 'mod.' or any 4,3 or 2 letter extension. E.G .txt .pp
 - BUGS: @{" See BUGS " link BUGS} 

@endnode

@node GREETS "Hi mum!"
@prev HISTORY
@next CONTACT
@{fg highlight}Greets go out to the following people:@{fg text}

Laurie Lee ( The C God ) - See! C isnt the be all and end all :))
Dave Hollway - Money and map NOW!!! :)
Mark & Scott/Visage Computers - What are YOU doing with one of my programs?
Catlord - When ya gonna code a demo then.... *;)
Draxx/Desire - Built any CrayAmigas lately?
Darren Bloor - Psst....Got any......dirty videos... :)
Creator/Dimentia - Get that Babylon 5 beater finished! ;)
KenD/LSD - See yers on mono m8.
CounterPoint/Westower - Hey, keep those cool mods coming..
Chalky - Was it 2 disks or 3 you gave me? ;>
WhiteWolf - HEY! Mail me dude!
WolfLord - If your reading this.it must be on my home page..Get yours done!:>
The_Don - SO...When are we gonna get our OWN section then? ;>
Jason Compton - Keep producing your great mag!
Deztech - Hi Philip...So...what do you think? (I hope I remembered ya nick!)

----
@{fg highlight}IRC:@{fg text}

FUNdament - Hey, get that paint package done..I want to do the AREXX :)
Secka     - Wonder if we'll get banned again... ;>
Wangi     - Where did you get that name from..? :)
Xanim     - Hey Terje..so when are you gonna optimise xanim then.. ;>
Toto      - B5 has the best effects... ;->

Oh and greets to all on #amiga..I'm not mentioning #amigascne..I was banned
from there for no reason! :(

@{b}AND..@{ub}

All  the  programmers  on  the world wide Amiga scene, who make our machine
such a joy to use.

While  I'm  at  it,  greets to ALL Amiga owners everywhere.  Keep the dream
alive!

@endnode

@node CONTACT "So you want to talk to me huh? :)"
@prev GREETS
@next MAIN
Right then, here are my current E-Mail addresses. They remain valid until:

@{b}Either:@{ub}

A). July/September 95' when I finish year 2 of my degree.
B). The operators de-user me for.....Errmmmm well, I dont think we need to
go into that right now *8-}}

Mail me - @{fg highlight}James Allen@{fg text} - at either:

- @{fg highlight}cc022jwa01@ntu.ac.uk    @{fg text}OR
- @{fg highlight}sys1jal@doc.ntu.ac.uk@{fg text}

You  can  also  contact  me  on the "MonoChrome" Internet BBS run from City
University London, England.

Telnet : @{fg highlight}electron.mono.ac.uk@{fg text}
PAD    : @{fg highlight}uk.ac.city.mono@{fg text}
         ( When prompted, enter the above TELNET address. )

My account name is : @{b}SlingShot@{ub}

I look forward to hearing from you.....

Oh  and  check out my WWW home page some time (Thanks Threapwood!).  It has
links to my programs on aminet, upcoming projects and Amiga links etc..

@{fg highlight}http://www.york.ac.uk/~dmh11/slingshot@{fg text}

---------------------------------------------------------------------------

Look  out  for my other releases ( I finally got my AREXX compiler!  ) such
as:

GuideCompiler - Scans recursively and builds an ŽAmigaGuide of text files.
DeliList      - "        "      " and builds up a ŽDeliTracker2 playlist.
MultiVer      - Compares VER strings in files in 2 directories and allows
                you to copy newer versions into the source. 
DeArchive     - Unpacks all LHA/LZH/ZIP files into a directory automatically
                (Aminet: util/arc/DeArchive15 - Most recent)

Oh and my one released music mod is on aminet in mods/pro and is called:

WhoIsElvis94.lha

It's a remix of the techno track, "Who is Elvis" By Interaction.

@endnode
