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