Files - Kates

Chapter 10:
Files
Starting Out with Programming Logic & Design
Second Edition
by Tony Gaddis
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter Topics
10.1
10.2
10.3
10.4
10.5
Introduction to File Input and Output
Using Loops to Process Files
Using Files and Arrays
Processing Records
Control Break Logic
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-2
10.1 Introduction to File Input and Output
When a program needs to save data for later use,
it writes the data in a file and can be used later
– In previous programs you wrote, the data was
stored in variables
– File input and output can interact with various
types of applications
•
•
•
•
•
Word processors
Image editors
Spreadsheets
Games
Web browsers
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-3
10.1 Introduction to File Input and Output
Three steps must take place for file interaction
1. Open the file. An output file means creating and
preparing it for output; an input file means
opening a file and preparing it for reading data
from
2. Process the file. Writes data to the file or reads
data from the file
3. Close the file. Must be done to disconnect it
from the program
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-4
10.1 Introduction to File Input and Output
Types of files include text and binary
–
A text file contains data that has been encoded as
text, using ASCII or Unicode
•
–
Even numbers in this type of file are stored as text
A binary file contains data that has not been
converted to text
•
A text editor is need to view the contents of a binary
file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-5
10.1 Introduction to File Input and Output
Files can be accessed in two methods
–
Sequential access
•
•
–
Direct access (aka random access)
•
–
Data is accessed from the beginning to the end
All data must be read
Any piece of data can be accessed without reading the
data that comes before or after it
This chapter will focus on sequential access files
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-6
10.1 Introduction to File Input and Output
Create a file and writing data to it
1. Files that are created should be given a name
with an appropriate file extension
•
customers.dat where .dat represents general data
2. Must also create an internal name that is similar
to a variable name
•
Declare OutputFile customerFile
– OutputFile indicates the mode in which the file will be used
– customerFile is the internal name used to work with the file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-7
10.1 Introduction to File Input and Output
3. Files must be opened
Open customerFile “customers.dat”
4. Data can then be written to a file
Write customerFile = “Charles Pace”
or
Declare String name = “Charles Pace”
Write customerFile name
5. Closing a file
Close customerFile
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-8
10.1 Introduction to File Input and Output
Delimiters and EOF Marker
–
A delimiter is a predefined character or set of
characters that marks the end of each piece of
data
•
–
It separates the different items stored in a file
An End of File (EOF) marker is a special
character or set of characters written to the end of
a file
•
It indicates the file’s contents end
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-9
10.1 Introduction to File Input and Output
Reading data from a file
1. An internal variable must first be declared
•
Declare InputFile inventoryFile
– InputFile indicates the mode in which the file will be used
– inventoryFile is the internal name used to work with the file
2. The file can then be opened
–
Open inventoryFile “inventory.dat”
3. Data can then be read
–
Read inventoryFile itemName
4. And finally closed
–
Close inventoryFile
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-10
10.1 Introduction to File Input and Output
The append mode
–
–
–
–
In addition to read and write mode, append mode
also exists to add data to a file that also exists
If the file already exists, it will not be erased
If the file does not exist, it will be created
When data is written to the file, it will be written
to the end of the file
•
Declare OutputFile AppendMode myFile
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-11
10.2 Using Loops to Process Files
Loops can be used to enter large amounts of data
For counter =1 To numDays
Display “Enter the sales for day #”, counter
Input sales
Write salesFile sales //writes to the file
End For
Loop could also be used to read large amounts of data
While NOT eof(salesFile)
Read salesFile sales
Display currencyFormat(sales)
End While
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-12
10.3 Using Files and Arrays
Files and arrays can be used together
–
The contents of an array can be saved to a file
•
•
•
–
Open the file
Use a loop to step through each element of the array
Write the contents to a file on each iteration
The contents of a file can be read into an array
•
•
•
Open the file
Use a loop to read each item from the file
Store each item in an array element
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-13
10.4 Processing Records
Data that is stored in a file is frequently
organized in records
–
–
A record is a complete set of data about an item
A field is a single piece of data within a record
Figure 10-18 Fields in
a record
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-14
10.4 Processing Records
Writing Records
–
An entire record is done using a single Write
statement
Write employeeFile name, idNumber, department
Reading Records
–
Done in a similar fashion
Read employeeFile name, idNumber, department
Algorithms can also be used for adding records
to a file, searching for a specific record(s),
modifying a record, and/or deleting a record
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-15
10.5 Control Break Logic
Control break logic interrupts a program’s
regular processing to perform a different
action when a control variable’s value
changes or the variable acquires a specific
value
–
–
One example is the use of a line counter to pause
the program before the information being
displayed goes out of view
This can be done with an if statement
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-16
10.5 Control Break Logic
If lines==24 Then
Display “Press any key to continue…”
Input
Set lines = 0 // resets the counter
End If
Figure 10-27 Pausing output after 24 items are displayed
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-17
End of Chapter Review
Multiple Choice questions 1 – 15 pages 407-408
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-18
Question 1
A file that data is written to is known as a(n)
a.input file
b.output file
c.sequential access file
d.binary file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-19
Question 1
A file that data is written to is known as a(n)
a.input file
b.output file
c.sequential access file
d.binary file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-20
Question 2
A file that data is read from is know as a(n)
a.input file
b.output file
c.sequential access file
d.binary file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-21
Question 2
A file that data is read from is know as a(n)
a.input file
b.output file
c.sequential access file
d.binary file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-22
Question 3
Before a file can be used by a program , it must
be
a.formatted
b.encrypted
c.closed
d.opened
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-23
Question 3
Before a file can be used by a program , it must
be
a.formatted
b.encrypted
c.closed
d.opened
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-24
Question 4
When a program is finished using a file, it should
do this.
a.erase the file
b.open the file
c.close the file
d.encrypt the file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-25
Question 4
When a program is finished using a file, it should
do this.
a.erase the file
b.open the file
c.close the file
d.encrypt the file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-26
Question 5
The contents of this type of file can be viewed in
an editor such as Notepad.
a.text file
b.binary file
c.English file
d.human-readable file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-27
Question 5
The contents of this type of file can be viewed in
an editor such as Notepad.
a.text file
b.binary file
c.English file
d.human-readable file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-28
Question 6
This type of file contains data that has not been
converted to text.
a.text file
b.binary file
c.Unicode file
d.symbolic file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-29
Question 6
This type of file contains data that has not been
converted to text.
a.text file
b.binary file
c.Unicode file
d.symbolic file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-30
Question 7
When working with this type of file, you access
its data from the beginning of the file to the end
of the file.
a.ordered access
b.binary access
c.direct access
d.sequential access
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-31
Question 7
When working with this type of file, you access
its data from the beginning of the file to the end
of the file.
a.ordered access
b.binary access
c.direct access
d.sequential access
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-32
Question 8
When working with this type of file, you can
jump directly to any piece of data in the file
without reading the data that comes before it.
a.ordered access
b.binary access
c.direct access
d.sequential access
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-33
Question 8
When working with this type of file, you can
jump directly to any piece of data in the file
without reading the data that comes before it.
a.ordered access
b.binary access
c.direct access
d.sequential access
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-34
Question 9
This is a small “holding section” in memory that
many systems write data to before writing the
data to a file.
a.buffer
b.variable
c.virtual file
d.temporary file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-35
Question 9
This is a small “holding section” in memory that
many systems write data to before writing the
data to a file.
a.buffer
b.variable
c.virtual file
d.temporary file
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-36
Question 10
This is a character or a set of characters that
marks the end of a piece of data.
a.median value
b.delimiter
c.boundary marker
d.EOF marker
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-37
Question 10
This is a character or a set of characters that
marks the end of a piece of data.
a.median value
b.delimiter
c.boundary marker
d.EOF marker
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-38
Question 11
This is a character or set of characters that marks
the end of a file.
a.median value
b.delimiter
c.boundary marker
d.EOF marker
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-39
Question 11
This is a character or set of characters that marks
the end of a file.
a.median value
b.delimiter
c.boundary marker
d.EOF marker
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-40
Question 12
This marks the location of the next item that will
be read from a file.
a.input position
b.delimiter
c.pointer
d.read position
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-41
Question 12
This marks the location of the next item that will
be read from a file.
a.input position
b.delimiter
c.pointer
d.read position
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-42
Question 13
When a file is opened in this mode, data will be
written at the end of the file’s existing contents.
a.output mode
b.append mode
c.backup mode
d.read-only mode
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-43
Question 13
When a file is opened in this mode, data will be
written at the end of the file’s existing contents.
a.output mode
b.append mode
c.backup mode
d.read-only mode
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-44
Question 14
The expression NOT eof(myFile) is equivalent to
a.eof(myFile) == True
b.eof(myFile)
c.eof(myFile) == False
d.eof(myFile) < 0
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-45
Question 14
The expression NOT eof(myFile) is equivalent to
a.eof(myFile) == True
b.eof(myFile)
c.eof(myFile) == False
d.eof(myFile) < 0
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-46
Question 15
This is a single piece of data within a record.
a.field
b.variable
c.delimiter
d.subrecord
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-47
Question 15
This is a single piece of data within a record.
a.field
b.variable
c.delimiter
d.subrecord
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1-48