Chapter 8 Sequential Files Chapter 8 Visual Basic

Chapter 8 Sequential Files Chapter 8 - Visual Basic Schneider 1

Outline and Objective • Creating Sequential Files • Adding items to Sequential Files • Using Sequential Files – Sorting Sequential Files – Merging Sequential Files Chapter 8 - Visual Basic Schneider 2

What is a File? • A collection of related data kept in secondary storage • Two types of files: program files, text(data) files • Data files are usually made up of a collection of records. • A record is collection of fields. Name First second record Chapter 8 - Visual Basic Ali 20 22 Huda 20 22 Ahmed 20 22 Schneider field 3

Creating a Sequential File • • • Choose a file name Choose a reference number Open the file for Output Write to the file Close the file Open “File. Name. txt” for Output as #1 Write#1, “Hello”, 5 Close #1 Chapter 8 - Visual Basic Schneider 4

Example: Private Sub cmd. Create. File_Click() Dim name 1 As String, x as Integer ' Demonstrate use of Write # statement Reference number Open “Marks. TXT" For Output As #1 Write #1, “Ali" File name Write #1, 22 Write #1, “Ahmed", 23 Write to the file name 1 = “Huda“ x= 20 Write #1, name 1, x+2 Close #1 Close the file End Sub Chapter 8 - Visual Basic Schneider 5

Example: Creates. Write a new thefile string for output CS surrounded Private Sub cmd. Create. File_Click() Dim name 1 As String, name 2 As String Open “Data. txt" For Output As #1 Write #1, “CS" Write #1, 116 Write #1, “BASIC", 10, 20, ”One ” name 1 = “Student“ name 2 = “Test" Write #1, 2*3, “ID “ & name 1, name 2 Close #1 End Sub by the quotation marks into theany file Write number 116 without leading or trailing space into the file “CS” 116 “BASIC", 10, 20, ”One ” 6, “ID Student”, ”Test” Chapter 8 - Visual Basic Schneider 6

Chapter 8 - Visual Basic Schneider 7

Chapter 8 - Visual Basic Schneider 8

Chapter 8 - Visual Basic Schneider 9

Caution • If an existing file is opened for output, the computer will erase the existing data and create a new empty file. Chapter 8 - Visual Basic Schneider 10

Adding Items to a Sequential File • • Choose a reference number for the file Open the file for Append Write to the end of the file Close the file Chapter 8 - Visual Basic Schneider 11

• Assume that the file “data. txt” contains the following entries: – 10, 20, 30, 40 • What is the content of the file “data. txt” after the user click on the command button Chapter 8 - Visual Basic Schneider 12

Sequential File • Different modes in which a file can be used: – Output – Input – Append • A file should not be open in two different modes at the same time. Chapter 8 - Visual Basic Schneider 13

Incorrect Code Private Sub Command 1_Click() Open "file. txt" For Output As #1 Open "file. txt" For Append As #1 Write #1, "col 1", "col 2" Close #1 End Sub Chapter 8 - Visual Basic Schneider 14

Incorrect Code Open "file. txt" For Output As #1 Write #1, "Number", "Name" Open "file. txt" For Append As #2 Write #1, 123, "Ali" Close #1 Close #2 Chapter 8 - Visual Basic Schneider 15

Correct Code Private Sub Command 1_Click() Open "file. txt" For Output As #1 Write #1, "Number", "Name" Close #1 Open "file. txt" For Append As #1 Write #1, 123, "Ali" Close #1 End Sub Chapter 8 - Visual Basic Schneider 16

ERROR: A file should not be open in two different modes at the same time. Chapter 8 - Visual Basic Schneider 17

Chapter 8 - Visual Basic Schneider 18

Sorting Sequential Files • The records of a sequential file can be sorted on any field by first reading the data into parallel arrays and then sorting on a specific field, and then rewriting the data into a file. Chapter 8 - Visual Basic Schneider 19

Merging Sequential Files • Steps to merge two sorted files: 1. Open the two sorted files For Input and a third file For Output 2. Get the two items of data from each file 3. Compare and repeat until the EOF. If one item precedes the other, write it into the third file and get another item from the file If the two items are identical, write it into the third file and advance to the next items in both files. 4. Write the remaining items to the third file 5. Close three files. Chapter 8 - Visual Basic Schneider 20

Common Errors • Opening the file in wrong mode • Not using Write statement every time you need to add data to a file • Not closing the file Chapter 8 - Visual Basic Schneider 21

Deleting or Changing a Record! • • Create a new file Read and change records Create a new one Erase the old one – Kill “File. Spec” • Rename the new file – Name “oldfilespec” As “newfilespec” Chapter 8 - Visual Basic Schneider 22

before After Chapter 8 - Visual Basic Schneider 23

After before Chapter 8 - Visual Basic Schneider 24

Error Trapping • Visual Basic has a device, called error-trapping, for preventing some types of errors. • If an error occurs while error-trapping is active, two things happen: 1. An identifying number is assigned to the Number property of an object called Err 2. The program jumps to error-handling routine. Chapter 8 - Visual Basic Schneider 25

Setting up error-trapping in a procedure: • Make the first line of the procedure: On Error Go. To Error. Handler • Type the statements to carry out the procedure • End the procedure by typing Exit Sub Error. Handler: error-handling routine Resume Chapter 8 - Visual Basic Schneider 26

Example ( error-handling routine to handle a “division by zero” error) Private Sub cmd. Divide_Click() On Error Go. To Error. Handler Dim a As Single, b As Single, c As Single pic. Result. Cls a = Val(Input. Box("Enter the numerator. ")) b = Val(Input. Box("Enter the denominator. ")) c=a/b pic. Result. Print ”The result is = “; c Chapter 8 - Visual Basic Schneider 27

The error-handling routine error. Handler: Line Label ‘ Division by zero is error code 11 If Err = 11 Then pic. Result. Print "You tried to divide by 0, which is illegal" pic. Result. Print "Try again. ” b=Val(Input. Box(“Enter the denominator”)) End If Resume End Sub Chapter 8 - Visual Basic Schneider 28

Chapter 8 - Visual Basic Schneider 29

Example ( error-handling routine to handle a “division by zero” error) Chapter 8 - Visual Basic Schneider 30

Chapter 8 - Visual Basic Schneider 31

Chapter 8 - Visual Basic Schneider 32

Chapter 8 - Visual Basic Schneider 33

Chapter 8 - Visual Basic Schneider 34

Question: Private Sub Command 1_Click() On Error Go. To fix. Me x = "file 1. txt" kill x Open x For Input As #1 Input #1, x Print x Close #1 Exit Sub fix. Me: Print "welcome to error handling" x = "file 2. txt" Resume End Sub Chapter 8 - Visual Basic file 1 contains: 1 4 7 file 2 contains: 5 8 9 welcome to error handling 5 Schneider 35

Question: What is the output of the following code private sub command 1_click() x = 12 y=6 Print x / (y - 6); On Error Go. To my. Routine Print x / (y - 9); Exit Sub my. Routine: Run time error (Division by zero) Print "Error"; y=y+3 Resume Chapter 8 - Visual Basic Schneider End Sub 36

Example Chapter 8 - Visual Basic Schneider 37
- Slides: 37