Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 1 STARTING OUT WITH Visual Basic 2008 FOURTH EDITION Tony Gaddis.

Slides:



Advertisements
Similar presentations
1 WORKING WITH 2007 WORD Part 1 Developed October 2007 with lots of help from.
Advertisements

Copyright © 2003 Pearson Education, Inc. Slide 3-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
Files, Printing, and Structures
Chapter 7 Constructors and Other Tools. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-2 Learning Objectives Constructors Definitions.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 1 STARTING OUT WITH Visual Basic 2008 FOURTH EDITION Tony Gaddis.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide STARTING OUT WITH Visual Basic 2008 FOURTH EDITION Tony Gaddis.
Lists, Loops, Validation, and More
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 5- 1 STARTING OUT WITH Visual Basic 2008 FOURTH EDITION Tony Gaddis.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Copyright © 2003 Pearson Education, Inc. Slide 7-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Extended Learning Module D (Office 2007 Version) Decision Analysis.
BASIC SKILLS AND TOOLS USING ACCESS
Tutorial 3 – Creating a Multiple-Page Report
Tutorial 9 – Creating On-Screen Forms Using Advanced Table Techniques
XP New Perspectives on Microsoft Office Word 2003 Tutorial 6 1 Microsoft Office Word 2003 Tutorial 6 – Creating Form Letters and Mailing Labels.
Microsoft Access 2007 Advanced Level. © Cheltenham Courseware Pty. Ltd. Slide No 2 Forms Customisation.
Mike Scott University of Texas at Austin
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Windows XP Project An Introduction to Microsoft Windows XP and Office 2003.
Creating a Dreamweaver Web Page and Local Site
1.
Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Chapter 10 Arrays and Tile Mapping Starting Out with Games & Graphics.
Turing Machines.
Chapter 4 Linked Lists. © 2005 Pearson Addison-Wesley. All rights reserved4-2 Preliminaries Options for implementing an ADT List –Array has a fixed size.
User Friendly Price Book Maintenance A Family of Enhancements For iSeries 400 DMAS from Copyright I/O International, 2006, 2007, 2008, 2010 Skip Intro.
Creating Tables in a Web Site
Microsoft Access.
Reporting Throughout this slide show there will be hyperlinks (highlighted in blue). Follow the hyperlinks to navigate to the specified Topic or Figure.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 24.1 Test-Driving the Ticket Information Application.
INTRODUCTION Lesson 1 – Microsoft Word Word Basics
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Office 2003 Integration Integrating Office 2003 Applications and the World Wide Web.
Benchmark Series Microsoft Excel 2013 Level 2
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
 Copyright I/O International, 2013 Visit us at: A Feature Within from Item Class User Friendly Maintenance  Copyright.
Collin College Credit Exam
Skills for Success with Microsoft® Office 2010
Benchmark Series Microsoft Excel 2010 Level 1
Types of selection structures
Chapter 12 Working with Forms Principles of Web Design, 4 th Edition.
Chapter 2 JAVA FUNDAMENTALS
Chapter 11 Creating Framed Layouts Principles of Web Design, 4 th Edition.
© Paradigm Publishing, Inc Access 2010 Level 2 Unit 2Advanced Reports, Access Tools, and Customizing Access Chapter 8Integrating Access Data.
Chapter 2 –Visual Basic, Controls, and Events
Chapter 11 Data Files Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.
IS 1181 IS 118 Introduction to Development Tools VB Chapter 06.
Chapter 9: Sequential Access Files and Printing
File Handling. Data Files Programs that can only get data from the user interface are limited. –data must be entered each time. –only small amounts of.
Microsoft Visual Basic 2008 CHAPTER NINE Using Arrays and File Handling.
Microsoft Visual Basic 2005 CHAPTER 9 Using Arrays and File Handling.
Using Arrays and File Handling
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 7 Using Menus, Common Dialogs, Procedures, Functions, and Arrays.
Chapter 10: Structures and Sequential Access Files
Chapter Ten Structures and Sequential Access Files Programming with Microsoft Visual Basic th Edition.
Chapter 9 Files, Printing, and Structure Topics Using Files The OpenFileDialog, SaveFileDialog, FontDialog, and ColorDialog Controls The PrintDocument.
11-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
Chapter Ten Structures and Sequential Access Files Programming with Microsoft Visual Basic th Edition.
Tutorial 9: Sequential Access Files and Printing1 Tutorial 9 Sequential Access Files and Printing.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 1.
Visual Basic 2010 How to Program © by Pearson Education, Inc. All Rights Reserved.
Copyright © 2012 Pearson Education, Inc. Chapter 5 Loops, File, and Random Numbers.
Week Files, Printing, and Structures Introduction Saving data to sequential text files Reading the data back into an application Using the OpenFileDialog,
Programming with Microsoft Visual Basic 2008 Fourth Edition Chapter Ten Structures and Sequential Access Files.
McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. Chapter 11 Data Files.
FILES AND EXCEPTIONS Topics Introduction to File Input and Output Using Loops to Process Files Processing Records Exceptions.
1 Displaying Dialog Boxes Kashef Mughal. 2 Midterm Stats Here we go  Average was  Low was 116  High was 184  Mid Quarter Grade - check any.
Topics Introduction to File Input and Output
Tutorial 9 Sequential Access Files and Printing
CIS16 Application Development and Programming using Visual Basic.net
Tony Gaddis Kip Irvine STARTING OUT WITH Visual Basic 2008
Topics Introduction to File Input and Output
Presentation transcript:

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 1 STARTING OUT WITH Visual Basic 2008 FOURTH EDITION Tony Gaddis Haywood Community College Kip Irvine Florida International University

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter Files, Printing, and Structures 9

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 3 Introduction Saving data to sequential text files Reading the data back into an application Using the OpenFileDialog, SaveFileDialog, ColorDialog, and FontDialog controls Using the PrintDocument control to print reports from your application Packaging units of data together into structures

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Using Files 9.1 A File Is a Collection of Data Stored on a Computer Disk Information Can Be Saved to Files and Later Reused

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 5 The Life Span of Data Thus far, all of our data has been stored in controls and variables existing in RAM This data disappears once the program stops running If data is stored in a file on a computer disk, it can be retrieved and used at a later time

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 6 Three Steps in Using a File 1. The file must be opened If it does not yet exist, it will be created 2. Data is read from or written to the file 3. The program closes the file

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 7 Reading and Writing to a File Data must be retrieved from disk and put in memory for an application to work with it Data is transferred from disk to memory by: Reading it from an input file Placing it in variables or control properties Data is transferred from memory to disk by: Writing it to an output file Getting it from variables or control properties Data is frequently placed in the text property of a control

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 8 File Types/Access Methods Text file type Character based text Contents can be viewed by Notepad Binary file type Pure binary form Contents cannot be viewed with a text editor Access Methods Sequential access – a continuous stream of data written and read as a whole from beginning to end Random access – access in any order with data written to or read from specific places in the file Like the difference between a casette tape and a CD

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 9- 9 Creating Files with StreamWriter Objects Add Imports System.IO before class declared Makes StreamWriter classes available in code A StreamWriter object is used to create a sequential text file in the following way: Declare an object variable of type StreamWriter Call CreateText method passing the filename Method returns a StreamWriter object Object is assigned to a StreamWriter variable Variable phoneFile now defines a stream of data that can be written to phonelist.txt Dim phoneFile As StreamWriter phoneFile = File.CreateText(phonelist.txt)

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Appending Text with StreamWriter A StreamWriter object is used to append data to a sequential text file in the following way: Declare an object variable of type StreamWriter Call AppendText method passing the filename Method returns a StreamWriter object Object is assigned to a StreamWriter variable Variable phoneFile now defines a stream of data that can be added to the end of phonelist.txt Dim phoneFile As StreamWriter phoneFile = File.AppendText(phonelist.txt)

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide File Paths Filename can include the file path Can be a complete file path with drive letter C:\WordProc\memo.txt" Refer to a file in the default drive root directory "\pricelist.txt" Or include no path information at all "mytext.txt If no path information specified, the bin folder of the current project is used

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Writing Data to a File The WriteLine method of a StreamWriter object actually writes data to the file ObjectVar.WriteLine(Data) Streamwriter object identified by ObjectVar The methods Data argument consists of constants or variables with data to be written WriteLine appends an invisible newline character to the end of the data Omit argument to write a blank line to a file ObjectVar.WriteLine()

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Writing Data to a File Example Dim studentFile As StreamWriter studentFile = File.CreateText("StudentData.txt") studentFile.WriteLine("Jim") studentFile.WriteLine(95) studentFile.WriteLine("Karen") studentFile.WriteLine(98) studentFile.WriteLine("Bob") studentFile.WriteLine(82) studentFile.Close() Jim 95 Karen 98 Bob 82 The Resulting File, StudentData.txt

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide The StreamWriter Write Method The Write method writes an item of data without writing a newline character Usually need to provide some sort of delineation or delimiter between data items A blank space could be used Comma is a more common delimiter ObjectVar.Write(Data)

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Closing a StreamWriter Object Should close files when finished with them Avoids losing data Data is initially written to a buffer Writes unsaved data from the buffer to the file The Close method of a StreamWriter object clears the buffer and closes the file ObjectVar.Close() Streamwriter object identified by ObjectVar Tutorial 9-1 provides an example of an application that writes data to a file

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Appending to a File If opening an existing file with CreateText Existing contents are removed New text overwrites the old text If opening an existing file with AppendText Existing contents are retained New text adds on to the end of the old text If adding a new friend to friendFile, use: friendFile = File.AppendText("MyFriends.txt")

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Appending a File Example Declare an object variable Dim friendFile as StreamWriter Open the file friendFile = File.AppendText(MyFriends.txt) Write the data friendFile.WriteLine(Bill Johnson) friendFile.WriteLine(30) friendFile.WriteLine(36 Oak Street) Close the file friendFile.Close() friendFile After Jim Weaver 30 P.O. Box 124 Mary Duncan Elm Street Karen Warren Love Lane friendFile Before Jim Weaver 30 P.O. Box 124 Mary Duncan Elm Street Karen Warren Love Lane Bill Johnson Oak Street

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide StreamReader Objects Use StreamReader objects to read from a file Define and open similar to StreamWriter: Sample code: Variable phoneFile now defines a stream of data that can be read from phonelist.txt Must have Imports System.IO before class declaration as was done with StreamWriter Dim ObjectVar As StreamReader ObjectVar = File.OpenText(Filename) Dim phoneFile As StreamReader phoneFile = File.OpenText(phonelist.txt")

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Reading Data from a File The ReadLine method of a StreamReader object actually reads data from the file dataVar = ObjectVar.ReadLine() Streamwriter object identified by ObjectVar The result of the method, the data read from the file, is assigned to string variable dataVar Sample code: Dim custFile As StreamReader custFile = File.OpenText("customer.txt") custName = custFile.ReadLine() custName holds the data read from the file StreamReader also has a Close method

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Determining Whether a File Exists The File.OpenText method issues a runtime error if the file does not exist Avoid this by using the File.Exists method Format is File.Exists(filename) Returns a boolean result that can be tested: Tutorial 9-2 shows how to read text file data If System.IO.File.Exists(filename) Then ' Open the file. inputFile = System.IO.File.OpenText(filename) Else MessageBox.Show(filename & " does not exist.") End If

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Detecting the End of a File The Peek method tests if youve reached end of file (no more characters to read) Format is objectvar.Peek If no more characters, the value -1 is returned Tutorial 9-3 demonstrates the Peek method Dim scoresFile As StreamReader Dim strInput As String scoresFile = File.OpenText("Scores.txt") Do Until scoresFile.Peek = -1 strInput = scoresFile.ReadLine() lstResults.Items.Add(input) Loop scoresFile.Close()

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Read Method Read method returns the integer code of the next character in the file Chr function converts integer code to character This loop appends one character at a time to input until no more characters are in the file Dim textFile As StreamReader Dim strInput As String = String.Empty textFile = File.OpenText("names.txt") Do While textFile.Peek <> -1 strInput &= Chr(textFile.Read) Loop textFile.Close()

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide ReadToEnd Method ReadToEnd method returns the rest of the file from the current read position to end of file Functions differently from ReadLine method ReadToEnd method ignores line delimiters The statement input = textFile.ReadToEnd reads the file contents and stores it in strInput Dim textFile As StreamReader Dim strInput As String textFile = File.OpenText("names.txt") strInput = textFile.ReadToEnd textFile.Close()

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Write Then Read an Entire Array Dim intValues(9) Dim outputFile as StreamWriter outputFile = File.CreateText("values.txt") For intCount = 0 To (intValues.Length – 1) outputFile.WriteLine(intValues(intCount)) Next intCount outputFile.Close() Dim inputFile as StreamReader inputFile = File.OpenText("values.txt") For intCount = 0 To (intValues.Length – 1) intValues(intCount) = CInt(inputFile.ReadLine) Next intCount inputFile.Close()

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The OpenFileDialog, SaveFileDialog, FontDialog, and ColorDialog Controls 9.2 Visual Basic Provides Dialog Controls That Equip Your Applications With Standard Windows Dialog Boxes for Operations Such As Opening Files, Saving Files, and Selecting Fonts and Colors

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide OpenFileDialog and SaveFileDialog Windows has a standard method of allowing a user to choose a file to open or save These methods let users browse for a file The OpenFileDialog and SaveFileDialog controls provide this capability in VB To use the OpenFileDialog control Double click on this tool in the Toolbox Appears in component tray Use ofd as standard prefix when naming SaveFileDialog is used in a similar way

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Displaying an Open Dialog Box Display control with the ShowDialog method ControlName.ShowDialog() Method returns a value indicating which dialog box button the user selects, either DialogResult.OK, or DialogResult.Cancel For example: If ofdOpenfile.Showdialog() = DialogResult.OK Then MessageBox.Show(ofdOpenFile.FileName) Else MessageBox.Show(You selected no file) End If

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Dialog Box Filter Property FileDialog controls have a Filter property Limits files shown to specific file extensions Specify filter description shown to user first Then specify the filter itself Pipe symbol (|) used as a delimiter Following Filter property lets user choose: Text files (*.txt), displays all.txt files All files (*.*), displays all file extensions ofdOpenFile.Filter = "Text files (*.txt)|*.txt|" & _ "All files (*.*)|*.*"

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Other OpenFileDialog Properties InitialDirectory property specifies folder to use Default if not specified is current folder To set dialog box initial directory to C:\Data: ofdOpenFile.InitialDirectory = C:\Data Title property specifies the text on the title bar Default title is Open if not specified ofdOpenFile.Title = Select a File to Open Filename property returns file selected from dialog box by user, in this case to selectedFile selectedFile = ofdOpenFile.Filename

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Open Dialog Box Example ' Configure the Open dialog box and display it. With ofdOpenFile.Filter = "Text files (*.txt)|*.txt|" & _ "All files (*.*)|*.*".InitialDirectory = "C:\Data".Title = "Select a File to Open" If.ShowDialog() = DialogResult.OK Then inputFile = System.IO.File.OpenText(.Filename) End If End With User may choose to display.txt files or all files Files from Data folder of hard drive are shown Dialog box title shows Select a File to Open Variable inputFile holds file selected by user

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Open Dialog Box Example InitialDirectory property Title property Filter property

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide SaveFileDialog Control SaveFileDialog uses the same methods: ShowDialog() The same properties: Filter InitialDirectory Title Filename And the same result constants: DialogResult.OK DialogResult.Cancel Tutorial 9-4 uses these controls in a text editor

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide ColorDialog Control Displays a typical Windows color dialog box Provides users the ability to choose a color

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide ColorDialog Control To use the ColorDialog control Double click the tool in the Toolbox Appears in component tray Use cd as standard prefix when naming The following code sets the text in control lblMessage to the color selected by the user cdColor.ShowDialog() If cdColor.ShowDialog() = DialogResult.OK Then lblMessage.ForeColor = cdColor.Color End If

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide FontDialog Control Displays a Windows font selection dialog box Allows users to choose font, font size, etc.

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide FontDialog Control To use the FontDialog control Double click the tool in the Toolbox Appears in component tray Use fd as standard prefix when naming The following code sets the text in control lblMessage to the font selected by the user fdFont.ShowDialog() If fdFont.ShowDialog() = DialogResult.OK Then lblMessage.Font = fdFont.Font End If

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The PrintDocument Control 9.3 The PrintDocument Control Allows You to Print Data to the Printer

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide PrintDocument Control Allows you to send output to the printer To use the PrintDocument control Double click the tool in the Toolbox Appears in component tray Use pd as standard prefix when naming PrintDocument control has a Print method This method starts the printing process Format is: PrintDocumentControl.Print() This triggers a PrintPage event

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide PrintPage Event Handler Private Sub pdPrint_PrintPage(ByVal sender As System.Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) _ Handles pdPrint.PrintPage Your print code inserted here End Sub The code in the PrintPage event handler performs the actual printing Double click PrintDocument control in tray This creates the PrintPage event handler Insert your print code inside the event handler Basic format of event handler shown below:

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide DrawString Method The DrawString method is used inside the PrintPage event to: Specify data to send to the printer in string Set font, font size, and font style Determine horizontal position ( HPos ) of text Determine vertical position ( VPos ) of text Brushes.Black specifies output in black DrawString method is formatted as follows: e.Graphics.DrawString(String, _ New Font(FontName, Size, Style), _ Brushes.Black, HPos, VPos)

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Specifying Fonts, Sizes, Styles Fonts are specified with the string which names the font to be used "Times New Roman" Arial", etc. Sizes are specified with a number 10, 12, etc. Print effects are specified with provided constants FontStyle.Regular FontStyle.Bold FontStyle.Underline

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Sample PrintPage Event Procedure Private Sub pdPrint_PrintPage(ByVal sender As System.Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) _ Handles pdPrint.PrintPage Dim inputFile As StreamReader Dim intX As Integer = 10Horizontal Position Dim intY As Integer = 10Vertical Position inputFile = File.OpenText(strFilename) Do While inputFile.Peek <> -1 e.Graphics.DrawString(inputFile.ReadLine, _ New Font("Courier", 10, FontStyle.Regular), _ Brushes.Black, intX, intY) intY += 12Increment Vert Pos Loop inputFile.Close() End Sub Tutorial 9-5 adds a print feature to Tutorial 9-4

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Printing Column Based Reports Business reports typically contain a: Report header printed at the top of the page Report body with the data, usually in columns Optional footer, often totalling certain columns Report header usually has column headings Monospaced font used for column reports Each character takes same amount of space This allows columns to be aligned String.Format used to align data along column boundaries

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide String.Format Example String.Format("{0, 7}{1, -10}{2, 7}", 50, "Arg1", 6) Specifies the argument number Specifies field width for arg negative - left justified positive - right justified Argument 0 Argument 1 Argument 2 Results in the following output: 50Arg spaces10 spaces Left Justified 7 spaces

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Structures 9.4 Visual Basic Allows You to Create Your Own Data Types, in Which You May Group Multiple Data Fields

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Structures vs. Arrays Arrays: Multiple fields in one array All of the same data type Distinguished by a numerical index Structures Multiple fields in one structure Can be of differing data types Distinguished by a field name

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Syntax for Declaring a Structure StructureName is a name that identifies the structure itself FieldDeclarations are the declarations of the individual fields within the structure [AccessSpecifier] Structure StructureName FieldDeclarations End Structure

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Structure Declaration Example Structure EmpPayData Dim intEmpNumber As Integer Dim strFirstName As String Dim strLastName As String Dim sngHours As Single Dim decPayRate As Decimal Dim decGrossPay As Decimal End Structure Following declares a structure with six fields intended to record employee payroll data Structure name is EmpPayData

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Creating and Initializing a Structure Dim deptHead As EmpPayData deptHead.strEmpNumber = 1101 deptHead.strFirstName = "Joanne" deptHead.strLastName = "Smith" deptHead.sngHours = 40 deptHead.decPayRate = 25 deptHead.decGrossPay = CDec(deptHead.sngHours) * _ deptHead.decPayRate Using the EmpPayData structure just defined Define variable deptHead of type EmpPayData deptHead contains the six fields in the structure Access each field using varName.fieldName

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Passing Structure Variables to Procedures and Functions Structures can be passed to procedures and functions like any other variable The data type to use in the specification is the name of the structure Sub CalcPay(ByRef employee as EmpPaydata) This procedure accepts an EmpPayData variable as its argument. The employees gross pay is calculated and stored in the grossPay field. With employee.decGrossPay =.sngHours *.decPayRate End With End Sub

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Structures Containing Arrays Structure StudentRecord Dim strName As String Dim sngTestScores() As Single End Structure Dim student As StudentRecord ReDim student.sngTestScores(4) student.strName = "Mary McBride" student.sngTestScores(0) = 89 Student.sngTestScores(1) = 92 Student.sngTestScores(2) = 84 Student.sngTestScores(3) = 96 Student.sngTestScores(4) = 91 Structures can contain arrays Must ReDim after declaring structure variable

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide Can declare an array of structures Example below declares employees as an array of type EmpPayData with 10 elements Can refer to each field using the format arrayName(index).fieldName Tutorial 9-6 examines an application with a structure Arrays Containing Structures Dim employees(9) As EmpPayData ' Refer to the empNumber of the first employee employees(0).empNumber = 1101

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Modifying the Demetris Leadership Center Application 9.5 Modify this application to include the ability to save and retrieve data, use an array of structure variables instead of parallel arrays, print the sales report

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Changes to Demetris Application Slide Replace parallel arrays with an array of structure variables Add option to print sales report Add options to save & retrieve units sold Structure ProductData Dim strName As String ' Item name Dim strDesc As String ' Descr Dim intProdNum As Integer ' Item nbr Dim decPrice As Decimal ' Unit price Dim intUnitsSold As Integer ' Units sold End Structure Const intMAX_SUB As Integer = 8 ' Array of ProductData Dim products(intMAX_SUB) As ProductData