chapter 3 - vb 2008 by schneider1 chapter 3 – variables, input, and output 3.1 numbers 3.2 strings...

86
Chapter 3 - VB 2008 by Schneider 1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Upload: paul-phelps

Post on 24-Dec-2015

234 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 1

Chapter 3 – Variables, Input, and Output

• 3.1 Numbers

• 3.2 Strings

• 3.3 Input and Output

Page 2: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 2

3.1 Numbers

• Arithmetic Operations

• Variables

• Incrementing the Value of a Variable

• Built-In Functions: • Math.Sqrt• Int• Math.Round

Page 3: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 3

Numbers continued

• The Integer Data Type

• Multiple Declarations

• Parentheses

• Three Types of Errors

• The Error List Window

Page 4: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 4

Arithmetic Operations

• Numbers are called numeric literals

• Five arithmetic operations in Visual Basic• + addition• - subtraction• * multiplication• / division• ^ exponentiation

Page 5: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 5

Numeric Expressions

• 2 + 3

• 3 * (4 + 5)

• 2 ^ 3

Page 6: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 6

Displaying Numbers

Let n be a number or a numeric expression.

The statement

lstBox.Items.Add(n)

displays the value of n in the list box.

Page 7: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 7

Example 1: Form

Page 8: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 8

Example 1: Code and OutputPrivate Sub btnCompute_Click (...) Handles btnCompute.Click lstResults.Items.Add(5) lstResults.Items.Add(2 * 3) lstResults.Items.Add((2 ^ 3) – 1)End Sub

Output 5in list 6box 7

Page 9: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 9

Numeric Variable

A numeric variable is a name to which a number can be assigned.

Examples:

speeddistance

interestRatebalance

Page 10: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 10

Variables

• Declaration:Dim speed As Double

Variable name Data type

• Assignment:speed = 50

Page 11: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 11

Initialization

• Numeric variables are automatically initialized to 0:

Dim varName As Double

• To specify a nonzero initial value

Dim varName As Double = 50

Page 12: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 12

Numeric Expressions

Numeric variables can be used in numeric

expressions.

Dim balance As Double = 1000

lstBox.Items.Add(1.05 * balance)

Output: 1050

Page 13: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 13

Assignment Statement

Dim numVar1 As Double = 5

Dim numVar2 As Double = 4

numVar1 = 3 * numVar2

lstBox.Items.Add(numVar1)

Output: 12

Page 14: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 14

Incrementing

• To add 1 to the numeric variable varvar = var + 1

• Or as a shortcutvar += 1

• Or as a generalizationvar += numeric expression

Page 15: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 15

Built-in Functions

• Functions return a value

Math.Sqrt(9) returns 3

Math.Sqrt(0) returns 0

Int(9.7) returns 9

Int(2.3) returns 2

Math.Round(2.7) is 3

Math.Round(2.5) is 2

Page 16: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 16

Integer Data Type• Variables of type Double can be assigned

both whole numbers and numbers with decimals.

• The statement Dim varName As Integer declares a numeric variable that can only

be assigned whole number values between about -2 billion and 2 billion.

Page 17: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 17

Multiple Declarations

Dim a, b As Double

Two other types of multiple-declaration statements are

Dim a As Double, b As Integer

Dim c As Double = 2, b As

Integer = 5

Page 18: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 18

Parentheses

• Parentheses should be used liberally in numeric expressions.

• In the absence of parentheses, the operations are carried out in the following order: ^, * and /, + and -.

Page 19: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 19

Three Types of Errors

• Syntax error

• Run-time error

• Logic error

Page 20: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 20

Some Types of Syntax Errors

• Misspellings

lstBox.Itms.Add(3)• Omissions

lstBox.Items.Add(2 + )• Incorrect punctuation

Dim m; n As Integer

Page 21: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 21

A Type of Run-time Error

• Overflow error

Dim numVar As Integer = 1000000

numVar = numVar * numVar

Page 22: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 22

A Logical Error

Dim average As Double

Dim m As Double = 5

Dim n As Double = 10

average = m + n / 2

Value of average will be 10. Should be 7.5.

Page 23: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 23

Error List Window• Dim m; n As Double• lstResults.Items.Add(5• lstResults.Items.Add(a)

Page 24: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 24

3.2 Strings• Variables and Strings• Option Explicit and Option Strict • Using Text Boxes for Input and Output• Concatenation

• String Properties and Methods:

•Length •ToUpper

•Trim •ToLower

•IndexOf •Substring

Page 25: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 25

Strings continued

• Auto Correction

• The Empty String

• Initial Value of a String

• Widening and Narrowing

• Internal Documentation

• Line-Continuation Character

• Scope of a Variable

Page 26: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 26

String Literal

A string literal is a sequence of

characters surrounded by quotation marks.

Examples:"hello"

"123-45-6789"

"#ab cde?"

Page 27: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 27

String Variable

A string variable is a name to which a

string value can be assigned.

Examples:

country

ssn

word

firstName

Page 28: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 28

String Variable

• Declaration:Dim firstName As String

Variable nameData type

• Assignment:firstName = "Fred"

Page 29: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 29

String Variable

You can declare a string variable and

assign it a value at the same time.

Dim firstName As String = "Fred"

Page 30: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 30

Add Method

Let str be a string literal or variable. Then,

lstBox.Items.Add(str)

displays the value of str in the list box.

Page 31: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 31

String Variable

You can assign the value of one string

variable to another.

Dim strVar1 As String = "Hello"

Dim strVar2 As String = "Goodbye"

strVar2 = strVar1

lstOutput.Items.Add(strVar2)

Output: Hello

Page 32: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 32

Variables and StringsPrivate Sub btnDisplay_Click(...) Handles btnDisplay.Click Dim president As String president = "George Washington" lstOutput.Items.Add("president") lstOutput.Items.Add(president)End Sub

Output: president George Washington

Page 33: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 33

Option Strict

• Visual Basic allows numeric variables to be assigned strings and vice versa, a poor programming practice.

• To prevent such assignments, set Option Strict to On in the Options dialog box.

Page 34: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 34

Option Strict -continued

• Select Options from the Tools menu

• In left pane, expand Projects and Solution

• Select VB Defaults

• Set Option Strict to On

Page 35: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 35

Using Text Boxes for Input and Output

• The contents of a text box is always a string

• Input example

strVar = txtBox.Text

• Output example

txtBox.Text = strVar

Page 36: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 36

Data Conversion

• Because the contents of a text box is always a string, sometimes you must convert the input or output.

dblVar = CDbl(txtBox.Text)

txtBox.Text = CStr(numVar)Converts a String to a Double

Converts a number to a string

Page 37: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 37

Auto Correction

Page 38: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 38

With Option Strict OnDim dblVar As Double, intVar As Integer

Dim strVar As String

Not Valid: Replace with:intVar = dblVar intVar = CInt(dblVar)

dblVar = strVar dblVar = CDbl(strVar)

strVar = intVar strVar = CStr(intVar)

Page 39: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 39

Concatenation

Combining two strings to make a new string

quote1 = "We'll always "quote2 = "have Paris."quote = quote1 & quote2txtOutput.Text = quote & " - Humphrey Bogart"

DisplaysWe'll always have Paris. - Humphrey Bogart

Page 40: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 40

Appending

• To append str to the string variable varvar = var & str

• Or as a shortcutvar &= str

Page 41: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 41

Appending ExampleDim var As String = "Good"

var &= "bye"

txtBox.Text = var

OUTPUT: Goodbye

Can you concatenate a string with

a number and concatenate numbers?

yes, the result will be string

Page 42: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 42

String Properties and Methods "Visual".Length is 6.

"Visual".ToUpper is VISUAL.

"123 Hike".Length is 8.

"123 Hike".ToLower is 123 hike.

"a" & " bcd ".Trim & "efg" is abcdefg.

Page 43: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 43

Positions in a String Positions of characters in a string are numbered

0, 1, 2, ….

Consider the string “Visual Basic”.

Position 0: V

Position 1: i

Position 7: B

Substring “al” begins at position 4

Page 44: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 44

Substring Method Let str be a string.

str.Substring(m, n) is the substring of length

n, beginning at position m in str.

“Visual Basic”.Substring(2, 3) is “sua”

“Visual Basic”.Substring(0, 1) is “V”

Page 45: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 45

IndexOf Method Let str1 and str2 be strings.

str1.IndexOf(str2)

is the position of the first occurrence of str2 in str1.

(Note: Has value -1 if str2 is not a substring of str1.)

"Visual Basic".IndexOf("is") is 1.

"Visual Basic".IndexOf("si") is 9.

"Visual Basic".IndexOf("ab") is -1.

"Mississippi".IndexOf(“ss“,3) is 5.

Page 46: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 46

The Empty String • The string "", which contains no characters, is

called the empty string or the zero-length string.• The statement lstBox.Items.Add("") skips a

line in the list box. • The contents of a text box can be cleared with

either the statement txtBox.Clear() or the statement txtBox.Text = ""

Page 47: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 47

Initial Value of a String

• By default the initial value is Nothing

• Strings can be given a different initial value as follows:

Dim name As String = "Fred"

Page 48: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 48

Widening and Narrowing

• Widening: assigning an Integer value to a Double variable• Widening always works. (Every Integer is a Double.)• No conversion function needed.

• Narrowing: assigning a Double value to an Integer variable• Narrowing might not work. (Not every Double is an Integer.)• Narrowing requires Cint.

• Strings can be given a different initial value as follows

Page 49: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 49

Comments

Private Sub btnCompute_Click (...)

Handles btnCompute.Click

'Calculate the balance in an account

Dim rate As Double 'Annual rate of interest

Dim curBalance As Double 'Current balance

Page 50: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 50

Internal Documentation

1. Other people can easily understand the program.

2. You can understand the program when you read it later.

3. Long programs are easier to read because the purposes of individual pieces can be determined at a glance.

Page 51: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 51

Line-Continuation Character

• A long line of code can be continued on another line by using an underscore (_) preceded by a space

msg = "I'm going to make " & _

"him an offer he can't refuse."

Page 52: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 6 - VB 2008 by Schneider 52

Scope

• The scope of a variable is the portion of the program that can refer to it.

• Variables declared inside an event procedure are said to have local scope and are only available in the event procedure in which they are declared.

Page 53: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 6 - VB 2008 by Schneider 53

Scope

• Variables declared outside an event procedure are said to have class-level scope and are available to every event procedure.

• Usually declared after

Public Class formName

(Declarations section of Code Editor.)

Page 54: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 54

Automatic Colorization

Comments – green

String literals – maroon

Keywords – blue

Note: Keywords are words such as Sub,

Handles, Private, With, and End that have

special meaning in Visual Basic. They

cannot be used as variable names.

Page 55: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 55

3.3 Input and Output

• Formatting Output with Format Functions

• Formatting Output with Zones

• Reading Data from Files

• Getting Input from an Input Dialog Box

• Using a Message Dialog Box for Output

• Using a Masked Text Box for Input

Page 56: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 56

Formatting Output with Format Functions

Function String Value

FormatNumber(12345.628, 1) 12,345.6

FormatCurrency(12345.628, 2) $12,345.63

FormatPercent(0.183, 0) 18%

FormatPercent(0.185, 2) 18.50%

Page 57: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 57

Formatting Output with Zones

• Use a fixed-width font such as Courier New

• Divide the characters into zones with a format string.

Dim fmtStr As String = "{0, 15}{1, 10}{2, 8}"

lstOutput.Items.Add(String.Format(fmtStr, _

data0, data1, data2))

Page 58: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 58

Formatting Output with Zones Example

Dim fmtStr As String = "{0, 15}{1, 10}"

lstOutput.Items.Add(String.Format(fmtStr, _

“Name”, “Major”))

lstOutput.Items.Add(String.Format(fmtStr, _

“Mohammed”, “MIS”))

lstOutput.Items.Add(String.Format(fmtStr, _

“Ahmed”, “CIS”))

Page 59: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 59

Formatting Output with ZonesDim fmtStr As String = "{0, -15}{1, 10}{2, 8}"

lstOutput.Items.Add(String.Format(fmtStr, _

data0, data1, data2))

Here, 15 was preceded by a minus sign. This

produces left justification in 0th zone. There will

be right justification in the other two zones.

Page 60: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 60

Zone Formatting Symbols

Symbols: N, C, and P Effect on zone

:Nr FormatNumber(data, r)

:Cr FormatCurrency(data, r)

:Pr FormatPercent(data, r)

Dim fmtStr As String = "{0,15:N1}{1,10:C2}{2,8:P0}"

Page 61: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 61

Reading Data from Files

• Data can be stored in text files and accessed with a StreamReader object.

• We assume that the text files have one piece of data per line.

Page 62: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 62

Sample File: PAYROLL.TXT

Mike Jones

9.35

35

John Smith

10.75

33

Name

Hourly wage

Number of hours worked

Page 63: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 63

Steps to Use StreamReaderExecute a statement of the form

Dim readerVar As IO.StreamReader = _ IO.File.OpenText(filespec)

or the pair of statements

Dim readerVar As IO.StreamReader readerVar = IO.File.OpenText(filespec)

Page 64: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 64

Steps to Use StreamReaderRead items of data in order, one at a time,from the file with the ReadLine method.

strVar = readerVar.ReadLine

After the desired items have been read fromthe file, terminate the communications link

readerVar.Close()

Page 65: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 65

Example using StreamReader

Dim name As StringDim wage, hours As DoubleDim sr As IO.StreamReader = _ IO.File.OpenText("PAYROLL.TXT")name = sr.ReadLinewage = CDbl(sr.ReadLine)hours = CDbl(sr.ReadLine)lstBox.Items.Add(name & ": " & wage * hours)

OUTPUT: Mike Jones: 327.25

Program’s bin folder/debug subfolder

Page 66: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 66

Comment on Example

Consider

lstBox.Items.Add(name & ": " & wage * hours)

The ampersand automatically converted

wage * hours into a string before concatenating.

We didn’t have to convert wage * hours with CStr.

Page 67: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 67

Chapter 8 – Sequential Files

8.1 Sequential Files

8.2 Using Sequential Files

Page 68: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 68

Section 8.1 – Sequential Files

• Creating a Sequential File

• Adding Items to a Sequential File

• Structured Exception Handling

Page 69: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 69

Sequential Files

• A sequential file consists of data stored in a text file on disk.

• May be created with the Visual Basic IDE

• May also be created programmatically from Visual Basic

Page 70: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 70

Creating a Sequential File

1. Choose a filename – may contain up to 215 characters

2. Select the path for the folder to contain this file

3. Execute a statement like the following:Dim sw As IO.StreamWriter = IO.File.CreateText(filespec)

(Opens a file for output.)

Page 71: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 71

Creating a Sequential File…

4. Place lines of data into the file with statements of the form:

sw.WriteLine(datum)

5. Close the file:

sw.Close()

Note: If no path is given for the file, it will

be placed in the Debug subfolder of bin.

Page 72: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 72

ExamplePrivate Sub btnCreateFile_Click(...) _ Handles btnCreateFile.Click Dim sw As IO.StreamWriter = IO.File.CreateText("PAYROLL.TXT") sw.WriteLine("Mike Jones") 'Name sw.WriteLine(9.35) 'Wage sw.WriteLine(35) ‘Hours worked sw.WriteLine("John Smith") sw.WriteLine(10.75) sw.WriteLine(33) sw.Close()End Sub

Page 73: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 73

File: PAYROLL.TXT

Mike Jones

9.35

35

John Smith

10.75

33

Page 74: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 74

Caution

• If an existing file is opened for output, Visual Basic will erase the existing file and create a new one.

Page 75: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 75

Adding Items to a Sequential File

1. Execute the statement Dim sw As IO.StreamWriter = IO.File.AppendText(filespec)

where sw is a variable name and filespec identifies the file.

2. Place data into the file with the WriteLine method.

3. After all the data have been recorded into the file, close the file with the statement

sw.Close()

Page 76: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 76

IO.File.AppendText

• Will add data to the end of an existing file

• If a file does not exist, the method will create it.

Page 77: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 77

Sequential File Modes

• CreateText – open for output

• OpenText – open for input

• AppendText – open for append

• A file should not be opened in two different modes at the same time.

Page 78: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 8 - VB 2008 by Schneider 78

Imports System.IO• Simplifies programs that have extensive file

handling.• Place the statement

Imports System.IO

at the top of the Code Editor, before the Class frmName statement. Then, there is no need to insert the prefix “IO.” before the words StreamReader, StreamWriter, and File.

Page 79: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 79

Getting Input from an Input Dialog Box

stringVar = InputBox(prompt, title)

fileName = InputBox("Enter the name " _

& "of the file containing the " & _

"information.", "Name of File")

Title

Prompt

Page 80: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 80

Using a Message Dialog Box for Output

MessageBox.Show(prompt, title)

MessageBox.Show("Nice try, but no cigar.", _ "Consolation")

Title

Prompt

Page 81: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 2 - VB 2008 by Schneider 81

Masked Text Box Control

Similar to an ordinary text box, but has a Mask property that restricts what can be typed into the masked text box.

Tasks button

Page 82: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 82

Masked Text Box Control

Click the Tasks button to reveal Set Mask property.

Click Set Mask to invoke Input Mask dialog box.

Page 83: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 83

Input Mask Dialog Box

Page 84: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 84

Mask

A Mask setting is a sequence of characters, with 0, L, and & having special meanings.

0 Placeholder for a digit.

L Placeholder for a letter.

& Placeholder for a character

Page 85: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 85

Sample Masks

State abbreviation: LL

Phone number: 000-0000

Social Security Number: 000-00-0000

License plate: &&&&&&

Page 86: Chapter 3 - VB 2008 by Schneider1 Chapter 3 – Variables, Input, and Output 3.1 Numbers 3.2 Strings 3.3 Input and Output

Chapter 3 - VB 2008 by Schneider 86

Importing a Text File

• Highlight program name in Solution Explorer

• Click on “Add Existing Item” in Project menu

• Locate text file and double-click on it. (File name will appear in Solution Explorer.)

• Move file to Debug subfolder of bin folder.