Ch-9:File Handling

Meaning : File handling is the process of  managing data file(s). It organizes the files by storing and retrieving data to and  from the data file.

 

File :  File is the collection of related data and information in a computer. There are two types of file.

(i)                 Program file : It is the collection of commands and keywords sequentially, in order to solve a particular problem. Program file is developed in programming language. It has an extension .BAS, .PRG,. CPP etc.

(ii)                Data file : It the collection of data under different fields of a particular topic stored in computer  It is linked with program file.  There are two types of data file. They are

(a)    Sequential access data file : The data file where data are organized in form of records sequentially, one after another. It access the records from top to bottom orderly unless end of file.

 

Advantages:

*. It is simple and natural way of managing data.

 

Disadvantages:

*. It is very slow and very difficult to update the data 

 

(b)   Random Access data file : The data file where data are accessed randomly without any sequence of record is called random access data file. The address of each record is derived from the key field called record pointer.

 

Advantages:

*. Direct access of record is possible, thus faster.

 *. Files can be easily maintained up to date.

 

Disadvantages:

*.There is danger of data corruption and deletion.

 

Modes of opening data file :

 

The way or purpose of the file to be opened is called file mode. Data file are opened to carry out the following activities.

*.To write /store data

*.To retrieve/read data

*.To append/add data

There are three modes of opening data file. They are

 

(i)                 Output mode : Data file is opened in this mode, in order to write or store data to the sequential data file

(ii)                Append mode : Data file is opened in this mode,  to add/append data at the end of existing data file.

(iii)             Input mode : Data file is opened in this mode, to read or retrieve data from sequential data file.

 

Keywords related to data file:

 

(i) OPEN:  This statement is used to open the data file for reading or writing or adding data to the data file. It creates buffer to the memory for I/O operation.

Syntax: OPEN<file$> FOR MODE AS #<FILE NUM>

 

(ii) CLOSE : It terminates or closes all open data files

      and devices.

Syntax : CLOSE #<FILE NUM>,#<FILENUM>,…

 

(iii) WRITE # : This statement is used to write/store data to the sequential data file.

Syntax: WRITE#<FILE NUM>,data,……

 

(iv) PRINT #:  : It is also used to write/store data to the sequential data file.

Syntax: PRINT#<FILE NUM>,data,……

 


1.                              WRITE A PROGRAM TO CREATE A SEQUENTIAL DATA FILE NAMED "RECORD.TXT" AND STORE ROLL NUMBER, NAME, ADDRESS AND CLASS OF A STUDENT.

 

OPEN “RECORD.TXT” FOR OUTPUT AS #1

CLS

INPUT “ENTER ROLL, NAME, ADDRESS AND CLASS OF A STUDENT”; R, N$, A$, C

WRITE #1, R, N$, A$, C

CLOSE #1

END

 

2.                              WRITE A PROGRAM TO CREATE A SEQUENTIAL DATA FILE NAMED "RECORD.TXT" AND STORE ROLL NUMBER, NAME, ADDRESS AND CLASS OF FEW STUDENTS.

 

OPEN “RECORD.TXT” FOR OUTPUT AS #1

CLS

DO

INPUT “ENTER ROLL, NAME, ADDRESS AND CLASS OF A STUDENT”; R, N$, A$, C

WRITE #1, R, N$, A$, C

INPUT “DO YOU WANT TO CONTINUE”; X$

LOOP WHILE UCASE$(X$) = “Y”

CLOSE #1

END

 

 

3.                              WRITE A PROGRAM TO READ ALL THE DATA OF THE DATA FILE NAMED “SALES.DAT”, WHERE FIELDS ARE ITEM NAME , SOLD_QTY , AMOUNT , SALES  NAME. DISPLAY THE RESULT ON THE SCREEN.

           

OPEN “SALES.DAT” FOR INPUT AS #1

WHILE NOT EOF(1)

INPUT  #1, ITEMNAME$ , SOLDQTY , AMOUNT , SALES NAME$

PRINT  ITEMNAME$ , SOLDQTY , AMOUNT , SALES NAME$

WEND

CLOSE #1

END

 

4.                              WRITE A PROGRAM TO DISPLAY ONLY THOSE RECORDS WHOSE NAME STARTS WITH "K" FROM  DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF SEVERAL STUDENTS.

 

OPEN “RECORD.TXT” FOR INPUT AS #1

CLS

PRINT "ROLL NO.", "NAME", "ADDRESS", "CLASS"

WHILE NOT EOF(1)

INPUT #1, R, N$, A$, C

Z$ = LEFT$(N$,1)

IF UCASE$(Z$) = "K" THEN

PRINT R, N$, A$, C

END IF

WEND

CLOSE #1

END

 

5.                              WRITE A PROGRAM TO DISPLAY ONLY THOSE RECORDS  WHO LIVES IN "POKHARA" FROM  DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF SEVERAL STUDENTS.

 

OPEN “RECORD.TXT” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, A$, C

A$ = UCASE$(A$)

IF A$ = "POKHARA" THEN

PRINT R, N$, A$, C

END IF

WEND

CLOSE #1

END

 

6.                              WRITE A PROGRAM TO COUNT AND DISPLAY ONLY THOSE RECORDS WHO READS IN CLASS 10 FROM  DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF SEVERAL STUDENTS.

 

OPEN “RECORD.TXT” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, A$, C

IF C = 10 THEN

PRINT R, N$, A$, C

X= X+1

END IF

WEND

PRINT "TOTAL STUDENTS WHO READS IN CLASS 10 ARE"; X

CLOSE #1

END

 

7.                              WRITE A PROGRAM TO DISPLAY ONLY THOSE RECORDS  WHOSE ROLL NUMBER IS IN FROM 20 TO 30 FROM  DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF SEVERAL STUDENTS.

 

OPEN “RECORD.TXT” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, A$, C

IF R>=20 AND R<=30 THEN

PRINT R, N$, A$, C

END IF

WEND

CLOSE #1

END

 

8.                              WRITE A PROGRAM TO COUNT ONLY THOSE RECORDS WHO DOESN'T LIVES IN "POKHARA" FROM  DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF SEVERAL STUDENTS.

 

OPEN “RECORD.TXT” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, A$, C

A$ = UCASE$(A$)

IF A$ <> "POKHARA" THEN

X=X+1

END IF

WEND

PRINT "TOTAL STUDENTS WHO DOESNOT LIVE IN POKHARA ARE"; X

CLOSE #1

END

 

9.                              WRITE A PROGRAM TO ADD FEW MORE RECORD IN A DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF FEW STUDENTS.

 

OPEN “RECORD.TXT” FOR APPEND AS #1

CLS

DO

INPUT “ENTER ROLL, NAME, ADDRESS AND CLASS OF A STUDENT”; R, N$, A$, C

WRITE #1, R, N$, A$, C

INPUT “DO YOU WANT TO ADD MORE”; X$

LOOP WHILE UCASE$(X$) = “Y”

CLOSE #1

END

 

10.                          WRITE A PROGRAM TO DISPLAY ALL THE RECORDS FROM  DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF SEVERAL STUDENTS.

 

OPEN “RECORD.TXT” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, A$, C

PRINT R, N$, A$, C

WEND

CLOSE #1

END

 

11.                          WRITE A PROGRAM TO DELETE ALL THOSE RECORDS WHOSE ADDRESS IS "KATHMANDU"FROM  DATA FILE NAMED "RECORD.TXT" WHICH CONTAINS ROLL NUMBER, NAME, ADDRESS AND CLASS OF SEVERAL STUDENTS.

 

OPEN “RECORD.TXT” FOR INPUT AS #1

OPEN "TEMP.TXT" FOR OUTPUT AS #2

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, A$, C

A$ = UCASE$(A$)

IF A$ <> "KATHMANDU" THEN

            WRITE #2, R, N$, A$, C

END IF

WEND

KILL "RECORD.TXT"

NAME "TEMP.TXT" AS "RECORD.TXT"

CLOSE #1

CLOSE #2

END

 

12.                          WRITE A PROGRAM TO DISPLAY ALL THE NAME OF STUDENTS WHO FAILED IN ANY ONE OR MORE OF THE SUBJECT.

 

OPEN “RESULT.DOC” FOR INPUT AS #1

CLS

PRINT  "NAME"

WHILE NOT EOF(1)

INPUT #1, R, N$, C, M, S, E, N, CO

IF M<40 OR S<40 OR E<40 OR N<40 OR CO<40 THEN

PRINT N$

END IF

WEND

CLOSE #1

END

 

13.                          WRITE A PROGRAM TO COUNT TOTAL NUMBER OF STUDENTS WHO PASSED IN ALL THE SUBJECT.

 

OPEN “RESULT.DOC” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, C, M, S, E, N, CO

IF M>=40 AND S>=40 AND E>=40 AND N>=40 AND CO>=40 THEN

X=X+1

END IF

WEND

PRINT "TOTAL PASS STUDENTS ARE"; X

CLOSE #1

END

 

14.                          WRITE A PROGRAM TO CALCULATE AND DISPLAY PERCENTAGE OF ALL THE STUDENTS ALONG WITH THE ROLL NUMBER AND NAME.

 

OPEN “RESULT.DOC” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, C, M, S, E, N, CO

T=M+S+E+N+CO

P=T/5

PRINT R, N$, P

WEND

CLOSE #1

END

 

15.                          WRITE A PROGRAM TO DISPLAY NAME OF THE STUDENTS WHO FAILED ONLY IN ENGLISH AND NEPALI.

 

OPEN “RESULT.DOC” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, C, M, S, E, N, CO

IF E<40 AND N<40 THEN

PRINT N$

END IF

WEND

CLOSE #1

END

 

16.                          WRITE A PROGRAM TO DELETE ALL THE RECORDS OF STUDENTS WHO FAILED IN ANY ONE OR MORE OF THE SUBJECT.

 

OPEN “RESULT.DOC” FOR INPUT AS #1

OPEN "TEMP.DOC" FOR OUTPUT AS #2

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, C, M, S, E, N, CO

IF M<40 OR S<40 OR E<40 OR N<40 OR CO<40 THEN

ELSE

WRITE #2, R, N$, C, M, S, E, N, CO

END IF

WEND

KILL "RESULT.DOC"

NAME "TEMP.DOC" AS "RESULT.DOC"

CLOSE #1,#2

END

 

17.                          WRITE A QBASIC PROGRAM TO READ ALL THE RECORDS FROM THE DATA FILE "SCHOOL.TXT" CONTAINING NAME, ROLL AND SCORE. THEN FIND AND DISPLAY THE AVERAGE SCORE OF THE CLASS.

 

OPEN “SCHOOL.TXT” FOR INPUT AS #1

CLS

WHILE NOT EOF(1)

INPUT #1, R, N$, S

PRINT R, N$, S

X=X+1

SUM=SUM+S

WEND

A=SUM/X

PRINT "AVERAGE SCORE"; A

CLOSE #1

END




18.                          WRITE A QBASIC PROGRAM TO READ ALL THE RECORDS FROM THE DATA FILE "RECORD.TXT" CONTAINING NAME AND SALARY. THEN FIND AND DISPLAY THE LOWEST, HIGHEST AND AVERAGE SALARY OF THE COMPANY.




OPEN "RECORD.TXT" FOR INPUT AS #1

INPUT #1, N$, SAL

S = SAL

H = SAL

CLOSE #1

OPEN "RECORD.TXT" FOR INPUT AS #1

WHILE NOT EOF(1)

INPUT #1, N$, SAL

PRINT N$, SAL

IF S > SAL THEN

S = SAL

END IF

IF H < SAL THEN

H = SAL

END IF




SUM = SUM + SAL

N = N + 1

WEND

AVE = SUM / N

PRINT AVE

PRINT S

PRINT H

CLOSE #1

END

 

 

 

Popular posts from this blog

Computer