1. Các thao tác với tệp.
a. Khai báo tệp văn bản:
Var <tên biến tệp>: text;
VD: Var
f : text;
Var tep1,
tep2: text;
b. Gắn tên tệp:
assign(< Tên biến tệp>, <Tên tệp>);
VD: MYFILE
:= 'DULIEU.DAT';
Assign(F,MYFILE);
hoặc
Assign(F,'DULIEU.DAT');
c. Mở tệp:
+ Để đọc: reset (<Tên biến
tệp>);
+ Để ghi : rewrite(<Tên biến
tệp>);
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(<Tên biến tệp>)
d. Đọc/ghi
tệp:
+ Đọc tệp
:
read(<tênbiếntệp>,<danh
sách biến>);
hoặc readln(<tênbiếntệp>,<danh
sách biến>);
- 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(<biến tệp>); 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(<tên
biến tệp>,<dsách kếtquả>);
hoặc writeln(<tên
biến tệp>,<dsách kếtquả>);
- 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(<biến tệp>);
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
(<Tên biến tệp>);
2. Một
số một hàm sử dụng khi làm việc với tệp
+ Hàm
EOLN(<biến tệp>); Trả về giá trị True khi con trỏ ở cuối dòng.
+ Hàm EOF(<biến
tệp>); 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.
Không có nhận xét nào:
Đăng nhận xét