a. Khai báo biến tệp:
Var Bientep:File;
b. Mở tệp để ghi-đọc:
* Mở tệp mới để ghi:
Assign(bientep, tentep);
Rewrite(bientep, n);
* Mở tệp để đọc dữ liệu:
Assign(bientep, tentep);
Reset(bientep, n);
Với n là độ lớn tính theo Byte.
c. Đọc và ghi tệp không định kiểu:
* Đọc tệp không định kiểu:
BlockRead(bientep,biennho,i,j);
* biennho: là biến đã được khai báo cùng kiểu với các phần tử của tệp, biến nhớ đóng vai trò vùng nhớ đệm để lưu trữ dữ liệu đọc từ phần tử của tệp ra.
* i: là số phần tử quy định cho mỗi lần đọc.
* j: là biến kiểu Word, dùng để ghi lại số phần tử thực sự đã được đọc.
* Ghi tệp không định kiểu:
BlockWrite(bientep,biennho,i);
1. Truy nhập tệp không định kiểu:
Tệp không kiểu cũng được truy nhập như tệp có kiểu nghĩa là cũng dùng thủ tục Seek(bientep,n) để truy nhập vào phần tử thứ n+1 của tệp.
Lưu ý là với tệp không kiểu, mỗi lần con trỏ dịch chuyển nó sẽ dịch chuyển một số byte đúng bằng số byte đã quy định trong lệnh Rewrite() hoặc Reset()
Ví dụ 2.10
Nhập vào tệp các phần tử là record và sau đó viết chúng ra màn hình. Trong phần khai báo record chọn Hoten là string[15] và Diem thuộc kiểu Real.
Program tep_khong_kieu;
Uses Crt;
Type hs=record
Hoten:string[15];
Diem:real;
End;
Var
bt:file; k,nguoi:hs; i,j:byte;
begin
clrscr;
assign(bt,’tep0kieu.dat’);
rewrite(bt,22);
write(‘Nhap bao nhieu nguoi?’);
readln(n);
for i:=1 to n do with nguoi do
begin
write(‘ Ho va ten:’); readln(hoten);
write(“Diem tong:’); readln(diem);
blockwrite(bt,nguoi,1);
end;
for i:=1 to n-1 do
begin
seek(bt,i);
blockread(bt,k,1);
textcolor(red);
with k do writeln(hoten.’ ‘,diem:5:2);
end;
ose(bt);
Readln;
End.