As we've already seen, it is very easy to enter a line using 'REFILL' and parse it. You can also use 'REFILL' to read lines from a text-file. It is quite similar to reading lines from the keyboard, except that you have to open a file first. This little program prints all the words of a textfile on a new line:
" file.txt" pad copy \ create filename input open \ open the file if input file \ redirect to file else \ else error ." File could not be opened" cr quit then begin refill \ get a line from file while \ check if EOF begin bl word count \ if not, parse line dup 0<> \ check if zero length while type cr \ if not, print word repeat \ parse next word drop drop \ drop address/count repeat \ get next line
Now that flag left by 'REFILL' makes sense! If it is zero, we have reached the end of the line. Note that you don't have to open a file in text-mode (there are even no words in 4tH to do that) and both Microsoft ASCII and Unix ASCII files are supported.