cs215 - lec 2 file organization
DESCRIPTION
File management, reading and writing strings/numbers into diskTRANSCRIPT
![Page 1: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/1.jpg)
![Page 2: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/2.jpg)
� Introduction to file organization:◦ What? Why? How?
� File organization challenge
� History of File organization
� Streams operations
Dr. Hussien M. Sharaf 2
![Page 3: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/3.jpg)
Dr. Hussien M. Sharaf 3
� File organization : is rearranging data structures and its operations in order to enhance performance of data reading and writing from and to secondary storage media (disks).
![Page 4: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/4.jpg)
Dr. Hussien M. Sharaf 4
Data structures
RAM/Main memory
Operations for accessing data
File structures File processing
Secondary memory
(Disks)
![Page 5: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/5.jpg)
Dr. Hussien M. Sharaf 5
�File structures: is organization of data representation on secondary devices such as disks.
�File processing (Streams Operations): The processing (treatment) of data on secondary devices such as disks. It involves transferring data between secondary devices and RAM.
�This will be built based on your knowledge of
Data Structures.
![Page 6: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/6.jpg)
� The study of file organization and processing is needed in order to retrieve data from secondary storage into RAM so that programs can process them.
� The retrieval process must be as fast as possible.
Dr. Hussien M. Sharaf 6
![Page 7: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/7.jpg)
1. Minimize number of trips to the disk in order to get desired information.
2. Grouping related information so that we are likely to get everything we need with only one trip to the disk (e.g. name, address,
phone number, account balance).
Dr. Hussien M. Sharaf 7
![Page 8: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/8.jpg)
Dr. Hussien M. Sharaf 8
![Page 9: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/9.jpg)
Dr. Hussien M. Sharaf 9
![Page 10: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/10.jpg)
� Reading/writing data is slow (since electronic and mechanical)
Dr. Hussien M. Sharaf 10
![Page 11: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/11.jpg)
Dr. Hussien M. Sharaf 11
![Page 12: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/12.jpg)
Dr. Hussien M. Sharaf 12
![Page 13: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/13.jpg)
� ofstream: Stream class to write on files
� ifstream: Stream class to read from files
� fstream: Stream class to both read and write from/to files.
Dr. Hussien M. Sharaf 13
![Page 14: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/14.jpg)
ios::in Open for input operations.
ios::out Open for output operations.
ios::binary Open in binary mode.
ios::ateSet the initial position at the end of the file.If this flag is not set to any value, the initial position is the beginning of the file.
ios::app
All output operations are performed at the end of the file, appending the content to the current content of the file. This flag can only be used in streams open for output-only operations.
ios::truncIf the file opened for output operations already existed before, its previous content is deleted and replaced by the new one.
Dr. Hussien M. Sharaf 14
![Page 15: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/15.jpg)
ofstream myfile;
myfile.open ("example.bin", ios::out | ios::app | ios::binary);
Dr. Hussien M. Sharaf 15
class default mode parameter
ofstream ios::out
ifstream ios::in
fstream ios::in | ios::out
ofstream myfile ("example.bin", ios::out | ios::app | ios::binary);
![Page 16: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/16.jpg)
Dr. Hussien M. Sharaf 16
if (myfile.is_open())
myfile << "This is a line.\n";
myfile.close();
Check that the stream is
opened.
Write data into stream.
Close the stream and
hence the modifications are
saved into the file.
![Page 17: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/17.jpg)
� tellg() and tellp()
These two member functions return an integer representing the current position of the get stream pointer (in the case of tellg) or the put stream pointer (in the case of tellp).
� seekg(count, offset) and seekp(offset, direction)
These functions allow programmers to change the position of the get and put stream pointers.
ios::beg offset counted from the beginning of the stream
ios::cur offset counted from the current position of the stream pointer
ios::end offset counted from the end of the stream
![Page 18: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/18.jpg)
Dr. Hussien M. Sharaf 18
What does this program do?- Obtain the size of a file
![Page 19: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/19.jpg)
� Check Examples 2.1 and 2.2
� Write a program that generates a random array of 12 integers and then write each element into a new line in a file “ArrayElem.txt”.
� Send the source code project (after zipping it) to my email:
Follow instructions made in the last page. Make sure to send your ID. Students who don’t send their IDs clearly will loose marks.
Dr. Hussien M. Sharaf 19
![Page 20: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/20.jpg)
� Check Examples 2.1 and 2.2 using VS2008 or VS2010
� Write a program that reads a given number of lines from “ArrayElem.txt” and displays them into one line separated by comma “,”.
� Send the source code project (after zipping it) to my email:
� Follow instructions made in the last page. Make sure to send your ID. Students who don’t send their IDs clearly will loose marks.
Dr. Hussien M. Sharaf 20
![Page 21: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/21.jpg)
� Next week is the deadline.
� No excuses.
� Don’t wait until last day.
� I can help you to the highest limit within the next 3 days.
Dr. Hussien M. Sharaf 21
![Page 22: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/22.jpg)
1. Delete the “bin” and “obj” folders.
2. Compress the solution folder using winrar.
3. Rename the compressed file as follows:
StudentName_ID_A1.rar
StudentName_ID_A2.rar
4. Email to: [email protected]
with your ID in the subject.
Dr. Hussien M. Sharaf 22
![Page 23: CS215 - Lec 2 file organization](https://reader033.vdocuments.site/reader033/viewer/2022051400/54c2ec3d4a795990308b45a5/html5/thumbnails/23.jpg)