In the previous FAQ, we discussed that the general purpose of the FileSystemObject (FSO)
is to allow access to the host computer's file system. One common function when dealing with a computer's
file system, is reading the contents of a file. FSO provides a TextStream
object that is
useful for reading and writing the contents of a text file. In this FAQ, we will discuss how to use
the TextStream
object to read the contents of a file.
When using the TextStream
object or other FSO objects, you need to first declare an instance
of the FileSystemObject
. For our script, let's start by creating an instance of the
FileSystemObject
:
'Create an instance of the FileSystemObject object
|
Before we open a file, we should always test to make sure it exists. The FileSystemObject
provides a useful function to determine whether or not a file exists, aptly named FileExists
.
The syntax for FileExists
is:
FileSystemObjectInstance.FileExists(FullFilePath)
|
So, in this example, we want to output the contents of the text file D:\scott\resume.txt
.
Before we open our file, we will make sure that it exists.
Earlier I mentioned that the TextStream
object is responsible for reading and writing to
the contents of a text file. A TextStream
object instance is used to iterate through the
contents of a particular text file. So, before we can use a TextStream
, we must inform the
TextStream
object instance what text file we are interested in. This is accomplished using
the FileSystemObject
's OpenTextFile
method. The OpenTextFile
method
has the following syntax:
FileSystemObjectInstance.OpenTextFile(FullFilePath[, iomode])
|
Note: there are two more parameters, but we are only interested in these first two for the time being. If you are interested in the full specifications, read this.
The optional iomode
parameter decides what IO mode the file is opened with. The following
values can be used:
iomode Values | |
---|---|
ForReading | 1 |
ForWriting | 2 |
ForAppending | 8 |
These constants are not defined in a text file like the ADO constants are defined in
ADOVBS.inc
. Therefore, you should define
the constant you wish to use. For example, if I use the ForReading
constant, you
will see ASP code like:
Const fsoForReading = 1
|
The OpenTextFile
method returns a TextStream
object instance. So, to set a
variable to a TextStream
object instance for reading the contents of a particular file, you
would use the following syntax:
'Assumes a FileSystemObject instance named objFSO exists
Const fsoForReading = 1
|
The TextStream
object has the following important methods for reading text files:
Read(characters)
- Reads a specified number of characters from the text file, returning a resulting string.
ReadLine
- Reads an entire line up to, but not including, the new line character. The results are returned as a string.
ReadAll
- Reads the entire contents of the file, returning the results as a string.
Finally, the TextStream
object has a Close
method, which should be used when
you have finished reading from the file.
Now, let's look at how we could read the entire contents of a text file, D:\scott\resume.txt
.
We will use the FileExists
method first, to make sure that the file does indeed exist. If it
does, we'll output the contents of the file; if it doesn't, we'll display an appropriate message.
|
Well, there you have it, reading the contents of a text file using the FileSystemObject
and
TextStream
objects. A closing note: whenever you use objects, you should
always do Set Object = Nothing
when you are done using them.
In our next FAQ, we will discuss how to write to text files using the FileSystemObject
and
TextStream
objects.
Happy Programming!
FAQ Table of Contents |
![]() |
Using the FileSystemObject to Write to Text Files ![]() |