480 likes | 588 Vues
This guide covers fundamental principles of using sequential access files in Visual Basic .NET. You'll learn to declare StreamReader and StreamWriter variables, open files for reading and writing, and check file existence. We’ll delve into important methods like Write, WriteLine, and ReadLine for handling data flow. Exception management with Try/Catch blocks will be discussed alongside practical examples. Perfect for beginners and intermediates looking to enhance their skills in file I/O operations.
E N D
This is from an old VB text but coding conventions still apply 1
Objectives • Declare StreamReader and StreamWriter variables • Open a sequential access file • Determine whether a sequential access file exists • Write information to a sequential access file • Align the text written to a sequential access file Microsoft Visual Basic .NET: Reloaded
Objectives (continued) • Read information from a sequential access file • Test for the end of a sequential access file • Close a sequential access file • Handle exceptions using a Try/Catch block • Write records to a sequential access file • Read records from a sequential access file Microsoft Visual Basic .NET: Reloaded
File Types • Output files • Files to which output is written • Store output produced by the application • Input Files • Files that are read by the computer • Application uses information stored in files • Sequential • Often referred to as “text files” • Binary and Random • Not covered in this text Microsoft Visual Basic .NET: Reloaded
Using Sequential Access Files Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
Declaring StreamWriter and StreamReader Variables • StreamWriter object • Writes a sequence of characters to a sequential access file • Referred to as a “stream of characters” • Also referred to as a “stream” • StreamReader object • Reads a stream (sequence of characters) to a sequential access file Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
Opening a Sequential Access file • Declare variable of StreamWriter or StreamReader object datatype • Then use variable to refer to object and file in the program • OpenText method • Opens an existing file for input • CreateText method • Creates a new empty file for output • AppendText method • Appends data to the end of an existing sequential access file Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
Opening a Sequential Access file (continued) Microsoft Visual Basic .NET: Reloaded
Determining Whether a File Exists Microsoft Visual Basic .NET: Reloaded
Writing Information to a Sequential Access File • Write method • Positions file pointer at end of last character it writes to the file • WriteLine method • Positions file pointer at beginning of next line in the file by appending a line termination character (carriage return, line feed) • Space function • Use to write a specific number of spaces to file Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
Aligning Columns of Information • PadLeft(length, [character]) • Pads at beginning of string with a specified character until string is a specified length • Character is optional and default is a space • PadRight(length, [character]) • Same as above only pads at end of string Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
Reading Information from a Sequential Access file • ReadLine method • Reads a line of text from sequential access file • A line is a sequence of characters followed by the line termination character • Peek method • Peeks into a file to see if file contains another character to read • Returns the number -1 if no more data in file • Typically used within a loop to prevent a file read error Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
Closing a Sequential Access File • Close method • Closes file associate with stream variable Microsoft Visual Basic .NET: Reloaded
The Friends Application • Allows user to write names of his or her friends to a sequential access file • Allows names to be read from above file Microsoft Visual Basic .NET: Reloaded
The Friends Application (continued) Microsoft Visual Basic .NET: Reloaded
The Friends Application (continued) Microsoft Visual Basic .NET: Reloaded
The Friends Application (continued) Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
The Friends Application (continued) • btnRead_Click event • Code causes name read from file to be displayed in a message box Microsoft Visual Basic .NET: Reloaded
Using a Try/Catch Block • Try statement • Use to catch (or trap) an exception • Exception is an error that occurs while program is running • Catch statement • Use to have computer take appropriate action • More than one catch can occur after a try • Multiple catch allow for trapping of different types of errors • Try/Catch block • Block of code that uses both Try and Catch statements Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
HOW TO…(continued) Microsoft Visual Basic .NET: Reloaded
Using a Try/Catch Block(continued) Microsoft Visual Basic .NET: Reloaded
Using a Try/Catch Block(continued) Microsoft Visual Basic .NET: Reloaded
Writing and Reading Records • Field • A single item of information about a person, place, or thing • Examples: Name, salary, price, age • Record • One or more related fields that contain all the necessary data about a specific person, place, or thing Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
HOW TO… Microsoft Visual Basic .NET: Reloaded
Programming Example - PAO Application • Application allows user to enter the political party and age • The input information is saved to a sequential access file • In addition, the application calculates and displays the number of voters in each political party Microsoft Visual Basic .NET: Reloaded
TOE Chart Microsoft Visual Basic .NET: Reloaded
TOE Chart (continued) Microsoft Visual Basic .NET: Reloaded
User Interface Microsoft Visual Basic .NET: Reloaded
Objects, Properties, and Settings Microsoft Visual Basic .NET: Reloaded
Objects, Properties, and Settings (continued) Microsoft Visual Basic .NET: Reloaded
Tab Order Microsoft Visual Basic .NET: Reloaded
Pseudocode btnExit Click event procedure close the application btnWrite Click event procedure open pao.txt file for append if txtparty control contains D, R, or I Write contents of txtParty control, a comma, and txtAge to pao.txt file else Display message prompting user to enter D,R, or I End if close the pao.txt file Clear contents of txtParty and txtAge controls Send focus to txtParty control Include a Try/Catch block to catch general errors displaying error description in a messagebox Microsoft Visual Basic .NET: Reloaded
Pseudocode (continued) btnDisplay click event procedure open pao.txt file for input repeat until no more characters to read read record from file if first character is letter D add 1 to Democrat counter else if first character is R add 1 to Republican counter else add 1 to Independent counter end if end try close pao.txt file Microsoft Visual Basic .NET: Reloaded
Pseudocode (continued) btnDisplay Click event (continued) Display Democrat counter value in lblTotalDem Display Republican counter value in lblTotalRep Display Independent counter value in lblTotalInd Include Try/Catch block with 2 Catch sections The first catches FileNotFoundException and displays “Cannot locate the pao.txt file” in a messagebox The second catches general errors and displays a description of the error in a messagebox Microsoft Visual Basic .NET: Reloaded
Code Microsoft Visual Basic .NET: Reloaded
Code (continued) Microsoft Visual Basic .NET: Reloaded
Summary • Information in a sequential access file is accessed in consecutive order (from beginning to end) • Use the StreamWriter object to write a sequence of characters (stream) to a sequential access file • Use a StreamReader object to read a stream from a sequential access file • Exists method returns a boolean value indicating whether file exists Microsoft Visual Basic .NET: Reloaded
Summary (continued) • Write method writes but does not write a line termination characters • WriteLine method appends a line termination character • ReadLine method reads a line of text • Peek method determines whether file has more data to be read • Space function writes specific number of spaces to file • PadLeft and PadRight pad characters to file to align columns of information Microsoft Visual Basic .NET: Reloaded
Summary (continued) • To prevent loss of data, call the Close method • Use a Try/Catch block to catch an exception (error) and to take appropriate action when exception occurs • Use a general Catch statement as the last Catch statement to handle unexpected errors • Display exception using syntax variablename.Message where variablename is the name of variable in catch statement • Sequential files are used to store fields and records Microsoft Visual Basic .NET: Reloaded