In this exercise we’ll explore Revolution’s ability to read and write text to external files. Create a new Mainstack. Name it “ExternalFilesEx” and save it to your desktop. On the first card, create a field called “fileName” and another field called “fileContents”.
Note: This exercise is designed to work in BYU's HTRSC Macintosh labs. If you try this elsewhere or on a Windows computer, you will have to modify the file path names accordingly, including supplying the correct user name for the file path in place of 'macuser'.
1. Open the message box, switch to the multi-line mode, and enter the following commands, then press Enter. Substitute your first name for your name.
open file "/Users/macuser/Desktop/your name's file"
close file "/Users/macuser/Desktop/your name's file"(Do this instead if you are working on a Windows computer:
open file "C:/Documents and Settings/username/Desktop/your name's File.txtRemember to substitute your login name for username.)
Although you may not have seen any change in Revolution, you have just created an empty file with the name and file path you supplied above. The file should have been created on the desktop.
This is the basic framework you use with the File System Model for working with external files in Revolution. The open file command “connects” your stack to a file of the name you specify. If the file does not exist, Revolution creates the file.
2. Try issuing the same commands as above without a file path:
open file "your name's file"
close file "your name's file"
What does the result message in the lower part of the message box say?
If you don’t specify a file path with the open file command, the file will be created in the current defaultFolder, assuming your user has write permission for that folder.. When you first launch Revolution, the defaultFolder is set to the folder where the Revolution application is located. If you try to create a file in a folder for which you do not have write permission, you will see an error message in the message box when you try to run these commands.
3. So far this isn’t very useful, since we are just opening and closing empty files. To write text to the file you created, use the write command. Enter these commands in the multi-line message box:
open file "/Users/macuser/Desktop/your name's file"
write "It's not empty now!" to file "/Users/macuser/Desktop/your name's file"
close file "/Users/macuser/Desktop/your name's file"
If you go back the Desktop and double-click on your file, it will open in the TextEdit application. Notice that the phrase you typed is there.
4. It gets tedious typing in the entire path name every time. You can simplify the process by typing the entire file path into field "fileName". Do this now.... To read the contents of your file in Revolution, use the read command. Enter the following commands in the message box. Notice how we refer to the field "fileName" instead of typing the path name in each time.
open file fld "fileName"
read from file fld "fileName" until end
close file fld "fileName"
put it into fld "fileContents"
If you did everything correctly the contents of your file should appear in card field "Contents".
Did you get an error message instead? One of the most common sources of errors is making an mistake in typing the file path. Revolution will not open or create a file if one of the folders in the file path you used does not exist.
You now know the rudiments of reading and writing to external files in Revolution using the File System Model.