Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 9 Structures and Sequential Access Files Objectives After studying this chapter, you should be able to: • Create a structure • Declare and manipulate a structure variable • Create an array of structure variables • Write information to a sequential access file • Align the text written to a sequential access file Microsoft Visual Basic 2005: Reloaded, Second Edition 2 Objectives (continued) • • • • Read information from a sequential access file Determine whether a file exists Code the FormClosing event Prevent a form from closing Microsoft Visual Basic 2005: Reloaded, Second Edition 3 Structures • Structure statement: creates your own data type • User-defined data type (or structure): data types created by using the Structure statement • Member variables: variables defined within a structure • Structure can include member variables of: – Any of the standard data types – Other structure types Microsoft Visual Basic 2005: Reloaded, Second Edition 4 Structures (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 5 Using a Structure to Declare a Variable • Structure variables: variables declared using a structure • Refer to an entire structure in code using its name • Refer to a member variable using the structure name with the dot operator and the member variable name • Member variables can be used like any other variables • Structures are used to group related items into one unit Microsoft Visual Basic 2005: Reloaded, Second Edition 6 Using a Structure to Declare a Variable (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 7 Using a Structure to Declare a Variable (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 8 Passing a Structure Variable to a Procedure Microsoft Visual Basic 2005: Reloaded, Second Edition 9 Passing a Structure Variable to a Procedure (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 10 Passing a Structure Variable to a Procedure (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 11 Passing a Structure Variable to a Procedure (continued) • Sample application using a structure: – Less code to pass a structure variable to a procedure – Stores all of the data in a single unit Microsoft Visual Basic 2005: Reloaded, Second Edition 12 Passing a Structure Variable to a Procedure (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 13 Passing a Structure Variable to a Procedure (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 14 Creating an Array of Structure Variables • Use a one-dimensional array of structure variables instead of two-dimensional or parallel onedimensional arrays • Refer to a member variable in an array element by: arrayname(subscript).memberVariableName Microsoft Visual Basic 2005: Reloaded, Second Edition 15 Creating an Array of Structure Variables (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 16 Creating an Array of Structure Variables (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 17 Creating an Array of Structure Variables (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 18 Creating an Array of Structure Variables (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 19 Creating an Array of Structure Variables (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 20 File Types • • • • • Reading a file: getting information from a file Writing to a file: sending information to a file Output files: files to which information is written Input files: files that are read by the computer Three types of files in Visual Basic: – Sequential – Random – Binary Microsoft Visual Basic 2005: Reloaded, Second Edition 21 File Types (continued) • Sequential file: data is accessed sequentially, in consecutive order from the beginning to the end • Random file: data can be accessed in consecutive or random order • Binary file: data is accessed by its byte location in the file Microsoft Visual Basic 2005: Reloaded, Second Edition 22 Sequential Access Files • Sequential access file: often called a text file because it is composed of lines of text • Data must be read sequentially from beginning to end Microsoft Visual Basic 2005: Reloaded, Second Edition 23 Sequential Access Files (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 24 Writing Information to a Sequential Access File • WriteAllText method: – Writes information to a sequential access file – File argument: contains the name of the file to be used – Text argument: contains the data to be written – Append argument: if True, data is added to end of existing file; otherwise all existing data is erased Microsoft Visual Basic 2005: Reloaded, Second Edition 25 Writing Information to a Sequential Access File (continued) • My feature: exposes a set of commonly used objects to the programmer • My.Computer object: allows access to objects and methods to manipulate files • Computer uses a file pointer to trace where the next character will be read from or written to a file • Strings.Space method: writes a specific number of spaces to a file Microsoft Visual Basic 2005: Reloaded, Second Edition 26 Writing Information to a Sequential Access File (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 27 Aligning Columns of Information in a Sequential Access File • PadLeft, PadRight methods: – Pads a string with a specified number of characters based on current length of the string being padded – Aligns columns of information written to a sequential access file • Aligns columns of numeric information by the decimal point Microsoft Visual Basic 2005: Reloaded, Second Edition 28 Aligning Columns of Information in a Sequential Access File (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 29 Aligning Columns of Information in a Sequential Access File (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 30 Reading Information from a Sequential Access File • ReadAllText method: reads information stored in a sequential access file – File argument: contains the name of the sequential access file Microsoft Visual Basic 2005: Reloaded, Second Edition 31 Reading Information from a Sequential Access File (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 32 Determining Whether a File Exists • An attempt to read a file that does not exist will cause an error • FileExists method: determines if the file exists before attempting to read it – File argument: contains the name of the file Microsoft Visual Basic 2005: Reloaded, Second Edition 33 Determining Whether a File Exists (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 34 The FormClosing Event • FormClosing event: – Occurs when a form is about to be closed by the program code or by the user – Allows you to trap the closing action and take any necessary actions such as saving data – Can be used to cancel the close action – Set e.Cancel = True to cancel the closing action Microsoft Visual Basic 2005: Reloaded, Second Edition 35 The FormClosing Event (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 36 The Friends Application Microsoft Visual Basic 2005: Reloaded, Second Edition 37 The Friends Application (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 38 The Friends Application (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 39 The Friends Application (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 40 The Friends Application (continued) Microsoft Visual Basic 2005: Reloaded, Second Edition 41 Programming Tutorial Microsoft Visual Basic 2005: Reloaded, Second Edition 42 Programming Example Microsoft Visual Basic 2005: Reloaded, Second Edition 43 Summary • Structure statement: defines a user-defined data type or structure • Structure variable contains one or more member variables • Structure variable can be passed to procedures • Create a one-dimensional array of structure variables – Use the dot member access operator to access the structure member variables Microsoft Visual Basic 2005: Reloaded, Second Edition 44 Summary (continued) • Application can read from and write to a file • Sequential access files are always accessed in consecutive (sequential) order from beginning to end • ReadAllText method: reads text from a sequential access file • WriteAllText method: writes text to a sequential access file • Use Strings.Space, PadLeft, and PadRight methods to align data in a sequential access file Microsoft Visual Basic 2005: Reloaded, Second Edition 45 Summary (continued) • FileExists method: determines if a file exists before trying to read from it • FormClosing event: occurs when the form is about to be closed • Use the FormClosing event to save data or to prevent a form from being closed Microsoft Visual Basic 2005: Reloaded, Second Edition 46