Load from one file and write to another

A simple demo to show how to read from one file and write to another in BBC BASIC for Windows.  In this case, the program also demonstrates the use of a single user-defined function.

In pseudocode the program works as follows:

  open file for reading (input)
  open file for writing (ouput)
  while not at the end of the file:
      read next word in the input file
      reverse the word
      write the reversed word into the output file
  close both files

I tested this program using a dictionary file of over 100000 English words and the output can be seen below:

Full source code follows:

     REM T Street
     REM 2014-12-12
     REM reads each word from a file, reverses it and
     REM then dumps it back into a new file

ON ERROR ERROR 0, "Oh dear, something went wrong "+REPORT$

     REM filenames
Filename_input$ = "<put filename here>.txt" : REM change this
Filename_output$ = "reversed.txt"

     REM carriage return line feed
CRLF$ = CHR$(13)+CHR$(10)

     REM open up the file for reading
FileIn% = OPENUP( Filename_input$ )
     FileOut% = OPENOUT( Filename_output$ )

     REM some helpful comments
PRINT "Reading from " Filename_input$
     PRINT "Reversing words..."

     REM the M A I N  L O O P
     REM ---------------------
       REM read in each word
INPUT#FileIn%, word$

       REM reverse it
reversedWord$ = FN_reverseMe( word$ )

       REM write to new file
PRINT#FileOut%, reversedWord$+CRLF$

REM now finished with every word
     REM so close both the files


     REM finish up
PRINT "Done - saved to " Filename_output$


DEFFN_reverseMe( aString$ )
     REM reverses the string passed as parameter
     REM and returns it
     LOCAL myNewString$
     REM step backwards through the string
     REM look at each character in sequence
FOR i% = LEN(aString$) TO 1 STEP -1
       REM add on the current character
myNewString$ += MID$( aString$, i%, 1)
= myNewString$