Click Here!
home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
Brief Full
 Advanced
      Search
 Search Tips
To access the contents, click the chapter and section titles.

Visual Basic 6 Programming Blue Book: The Most Complete, Hands-On Resource for Writing Programs with Microsoft Visual Basic 6!
(Publisher: The Coriolis Group)
Author(s): Peter G. Aitken
ISBN: 1576102815
Publication Date: 08/01/98

Bookmark It

Search this book:
 
Previous Table of Contents Next


Another way to obtain a TextStream object is to create a File object, then use its OpenAsTextStream method. Creating a File object is done like this, assuming that fs is a FileSystemObject:

Dim f
Set f = fs.GetFile(filename)

For this method to work, the file specified by filename must exist (you’ll learn more about creating File objects in the next chapter). To create a new file, you would use CreateTextFile and then create the File object:

fs.CreateTextFile filename
Set f = fs.GetFile(filename)

Once you have the File object, you can invoke the OpenAsTextStream method. The syntax is:

f.OpenAsTextStream([iomode, [format]])

The iomode and format arguments are the same as described earlier for the CreateTextFile and OpenTextFile methods. Here’s the code necessary to create a TextStream object associated with an existing file DEMO.TXT for reading using the OpenAsTextStream method:

Dim fs, f, ts
Set fs = CreateObject(“Scripting.FileSystemObject”)
Set f = fs.GetFile(“demo.txt”)
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)

So far, we have seen how to create a TextStream object. Once you have done this, what next? The TextStream object has properties and methods that you use to write and read text. The properties are described in Table 13.4. In reading this table, be aware that TextStream object always has a current character position, also called the file pointer, that indicates where the next read or write operation will take place. Note that all of these properties are read-only.

You use the TextStream object’s methods to read and write data. These methods are described in Table 13.5.

Table 13.4 Properties of the TextStream object.

Property Description
AtEndOfLine True, if the file pointer is at the end of a line; False otherwise. This property applies only to TextStream files that are open for reading; otherwise, an error occurs.
AtEndOfStream True, if the file pointer is at the end of the file; False otherwise. This property applies only to TextStream files that are open for reading; otherwise, an error occurs.
Column Returns the column number of the file pointer. The first character on a line is at column 1.
Line Returns the current line number.


Table 13.5 Methods of the TextStream object.

Method Description
Close Closes the file associated with the TextStream object. You should always execute the Close method when you are done reading/writing the file.
Read(n) Reads the next n characters from the file and returns the resulting string.
ReadAll Reads the entire file and returns the resulting string.
ReadLine Reads an entire line (up to, but not including, the newline character) from a TextStream file and returns the resulting string.
Skip(n) Skips ahead (moves the file pointer) by n characters.
SkipLine Skips to the beginning of the next line.
Write(s) Writes the string s to the file. No extra or newline characters are added.
WriteBlankLines(n) Writes n blank lines to the file.
WriteLine(s) Writes the string s to the file, followed by a newline character.

Be aware that some of these methods are applicable only when the file has been opened for reading or writing. If you try to use a method that is inappropriate for the file’s mode, an error will occur.

An FSO Text File Demonstration

The program given here is a simple demonstration of using FSO to read and write a text file. The program’s form, shown in Figure 13.2, contains one Text Box and a control array of three Command Buttons. Other than setting captions, the only property you need to change is to set the Text Box’s Multiline property to True.

The project’s code is presented in Listing 13.1. You can see that the name for the file is defined as a program constant; you could easily modify the program so it would prompt the user for a file name. In the LoadTextFromFile procedure, I have used error handling to deal with the possibility that the user will try to load the file before saving it. This would result in an error when the OpenTextFile method fails to find the file. By trapping the error, the program presents an informative message to the user rather than simply crashing.


Figure 13.2  The FSO demonstration program.

Listing 13.1 The code in FSODEMO.FRM.

Option Explicit

Const FILENAME = “FSODEMO.TXT”

Private Sub Command1_Click(Index As Integer)

Select Case Index
    Case 0 ‘ Save
        Call SaveTextToFile
    Case 1 ‘ Load
        Call LoadTextFromFile
    Case 2 ‘ Quit
        End
End Select

End Sub

Public Sub LoadTextFromFile()

On Error GoTo ErrorHandler

Dim fs, f, msg
Set fs = CreateObject(“Scripting.FileSystemObject”)
Set f = fs.OpenTextFile(FILENAME, ForReading)
Text1.Text = f.ReadAll
f.Close
Exit Sub

ErrorHandler:

If Err = 53 Then
    msg = “File Not Found”
Else
    msg = “Error opening ” & FILENAME
End If
MsgBox (msg)

End Sub

Public Sub SaveTextToFile()

Dim fs As New Scripting.FileSystemObject
Dim f

Set f = fs.CreateTextFile(FILENAME, True)
f.write Text1.Text
f.Close

End Sub

Using Random Access Files

A random access file is similar to a sequential access file in that both consist of records. Random file records must all be the same size, however, and the program differentiates one record from the next by its position in the file. No special character is used to separate records. For example, if a file’s records are each 100 bytes long, bytes 1 through 100 contain the first record (byte positions in a file always start at position 1), and record 4 is at positions 301 through 400. Random file records are numbered sequentially starting at 1, with a maximum of 2,147,483,647. (Not big enough for you? Too bad.) Each record is divided into one or more fields. The fields, too, are defined by their length. Each record in a random file contains the same field structure—the same number of fields and the same field sizes. Before you can create or use a random file, you must define its record structure.


Previous Table of Contents Next


Products |  Contact Us |  About Us |  Privacy  |  Ad Info  |  Home

Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc.
All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.