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  <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