File Handling - Shawlands Academy

advertisement
File Handling
Advanced Higher Programming
What is a file?


Up until now, any stored data within a
program is lost when the program
closes.
A file is a permanent way to store data
File Handling
Three types of file can be used for
storing data



Sequential
Random
Binary
Sequential Files
Sequential files are useful for:



Storing text
Easy implementation in programs
Where real-time editing of file(s) is not
required
Random Files
Random file structures are useful for


Files that require real-time editing
Storing records
Binary Files
Binary Files are useful for



Storing numbers, programs and images
Where no defined file structure is
present
They will not be used in this course
Sequential Files

Have a universal standard format and
are used in text editors such as
windows notepad


Numerical data is stored as a string
e.g., 5.32 would be stored as “5.32”
They are read from start to finish and
so cannot be read and written to
simultaneously
Sequential Files



Data is ALWAYS written and retrieved
as CHARACTERS.
Hence, any number written in this mode
will result in the ASCII Value of the
number being stored.
For Example, The Number 17 is stored
as two separate characters "1" and "7".
Which means that 17 is stored as [ 49
55 ] and not as [ 17 ].
Sequential Files

Are like a one dimensional array

The text, ONE DAT might be stored as:
“
O
N
E
D
A
T
”
CR
EOF
Sequential Files
Files are manipulated in 3 stages:



File Open
Process File
Close File
Sequential Files
File Open


If the file does not exist it is created
and then opened by the operating
system.
A portion of memory (RAM) is
reserved by the Operating System.
Sequential Files
Processing a File


When a file is open it can be written
to or read from. (both in the case of
random and binary files)
Writing to a file will save it to backing
store.
Sequential Files
Closing a file


When a file has been opened and
processed it must then be closed.
The Operating system will then release
the memory.
Visual Basic

VB supports all three file types, but you
are only likely to use two of them


Text files
Random Access files
Text Files
Sequential/Text Files
Input
Output
Append
Random
Binary
File opened for read-only access.
File opened for output which is only write-to
or create
The file is opened for adding new data to an
existing file. This is the default setting.
The file is open for random access. This is
writing or reading one record at a time.
The file is opened in binary mode
Using the OpenFileDialog control
Dim Filename as String
OpenFileDialog1.ShowDialog()
Filename= OpenFileDialog1.Filename
lblFilename.Text = Filename
Opening Files
FileOpen(1, Filename, OpenMode.Input) ‘to read from the file
FileOpen(1, Filename, OpenMode.Output) ‘to write to the file
FileOpen(1, Filename, OpenMode.Append) ‘to write to the end of
the file
Note – 1 assigns the file the number 1. All files are
identified by a number, not by their name. If you have two
or more files open at once they must have different
numbers.
Opening Files


The FileOpen statement opens a file if it
exists. When you open a file to read
from it, an error results if it does not
exists. When you open a file to write to
it, if it doesn’t exist FileOpen first
creates it and opens it.
Filename contains the name and path
of the file
Opening (creating) a Sequential File
This algorithm would achieve this:
1.
2.
3.
4.
5.
Enter Filename
Open File for writing
Input Information
Save to file
Close file
Opening (creating) a Sequential File
This algorithm would achieve this:





Enter Filename
Open File for writing
Input Information
Save to file
Close file
Filename= OpenFileDialog1.FileName
Opening (creating) a Sequential File
This algorithm would achieve this:





Enter Filename
Open File for writing
Input Information
Save to file
Close file
FileOpen(1, Filename, OpenMode.Output)
Opening (creating) a Sequential File
This algorithm would achieve this:





Enter Filename
Open File for writing
Input Information
Save to file
Close file
Writeline(1, DataToBeWritten)
Opening (creating) a Sequential File
This algorithm would achieve this:





Enter Filename
Open File for writing
Input Information
Save to file
Close file
FileClose (1)
Opening a sequential file
The final code would look like:
Dim Filename as string
‘File manipulation Program
‘Create File
Private sub cmdCreateFile_Click()
OpenFileDialog1.ShowDialog()
Filename = FileDialog1.FileName
FileOpen(1,Filename, OpenMode.Output)
WriteLine(1,DataToBeWritten)
FileClose (1)
End Sub
Download