Bài tập về thao tác với tệp

1. Các thao tác với tệp.
a. Khai báo tệp văn bản:
Var: text;
VD:Var f : text;
Var tep1, tep2: text;
b. Gắn tên tệp:
assign[< Tên biến tệp>, ];
VD:MYFILE := 'DULIEU.DAT';
Assign[F,MYFILE];
hoặc
Assign[F,'DULIEU.DAT'];
c.Mở tệp:
+ Để đọc:reset [];
+ Để ghi :rewrite[];
VD:Reset[F];
Rewrite[F];
- Chú ý: Khi mở tệp để đọc thì tệp phải có rồi [nếu không máy báo lỗi là không tìm thấy tệp]. Còn khi mở tệp để ghi thì lệnh Rewrite sẽ mở file ra và ghi dữ liệu mới đè lên dữ liệu cũ. [Nếu ghi tiếp thì sử dụng thủ tục APPDEND[]
d. Đọc/ghi tệp:
+ Đọc tệp :
read[,];
hoặc readln[,];
- Lệnh Read và Readln khác nhau ở chỗ, sau khi đọc các giá trị trong file ra danh sách biến thì con trỏ đọc sẽ xuống đầu dòng bên dưới, còn lệnh Read thì không.
Ví dụ: File DULIEU.DAT có 2 dòng; Dòng đầu chứa 3 số nguyên dương 1, 2,3; Dòng 2 chứa 3 số nguyên dương 4,5,6
- Gọi Read[F,a,b];Readln[F,c] thì a=1,b=2;c=3 rồi con trỏ chỉ tới đầu dòng thứ 2;
- Nếu gọi Readln[F,a,b];Read[F,c]; thì a=1; b=2; c=4; rồi con trỏ ở ngay sau giá trị vừa đọc [tức là trỏ tới số 5].
- Ngoài ra còn có lệnh Readln[]; Dùng để đưa con trỏ xuống đầu dòng bên dưới mà không đọc ra giá trị nào.
+ Ghi tệp:
write[,];
hoặc writeln[,];
- Lệnh Writeln khác lệnh Write ở chỗ sau khi ghi các kết quả lên File thì sẽ đưa con trỏ xuống đầu dòng bên dưới còn lệnh Write thì không.
Ví dụ: Writeln[F, Tong ca so ,a, va ,b, la ];write[F,a+b]; Với a:=1; b:=2; Sẽ in ra màn hình 2 dòng:
Tong cac so 1 va 2 la
3 [con trỏ ghi nằm ngay sau số 3]
- Ngoài ra còn có lệnh Writeln[]; Dùng để đưa con trỏ xuống đầu dòng bên dưới mà không ghi vào giá trị nào.
e.Đóng tệp:
close [];
2. Một số một hàm sử dụng khi làm việc với tệp
+ Hàm EOLN[]; Trả về giá trị True khi con trỏ ở cuối dòng.
+ Hàm EOF[]; Trả về giá trị True khi con trỏ ở cuối Tệp.
3. Ví Dụ:
File dulieu.dat gồm 2 dòng, mỗi dòng chứa 2 số nguyên. Ghi lên file tb.dat giá trị trung bình cộng của các số trên file dulieu.dat
Giải
Program tep;
Var F1,F2:text;
A,b,c,d:integer;
BEGIN
Assign[F1,dulieu.dat]; Reset[F1];
Assign[F2,tb.dat]; rewrite[F2];
Readln[F1,a,b];Readln[F1,c,d];
Write[F2,trung binh cong ca so=,[a+b+c+d]/2:8:2];
Close[f1]; Close[f2];
END.




Video liên quan

Chủ Đề