Trong Pascal, để tạo tệp (file), chúng ta có thể sử dụng từ khóa file
và khai báo kiểu dữ liệu của tệp đó.
Ví dụ:
type
MyFile = file of Integer;
var
f: MyFile;
Trong đoạn mã này, chúng ta đã khai báo một kiểu tệp mới MyFile
với kiểu dữ liệu là Integer
. Chúng ta đã khai báo biến f
kiểu MyFile
để thao tác với tệp này.
Để mở một tệp để ghi, chúng ta sử dụng hàm Assign
để chỉ định tên tệp và chế độ mở tệp là ghi (FileModeOutput
):
Assign(f, 'filename.txt');
Rewrite(f);
Trong đoạn mã này, chúng ta đã gán tên tệp là filename.txt
cho biến f
, và sử dụng hàm Rewrite
để mở tệp này với chế độ ghi.
Sau đó, chúng ta có thể sử dụng hàm Write
để ghi dữ liệu vào tệp:
Write(f, 42);
Đoạn mã này sẽ ghi số nguyên 42 vào tệp filename.txt
.
Khi đã hoàn tất việc ghi dữ liệu vào tệp, chúng ta nên đóng tệp bằng cách sử dụng hàm Close
:
Close(f);
Chú ý rằng trong trường hợp tệp đã tồn tại trước đó, sử dụng Rewrite
sẽ xóa toàn bộ nội dung của tệp đó và ghi đè lên nó. Nếu chúng ta muốn thêm dữ liệu vào tệp đã có sẵn mà không làm mất nội dung cũ, chúng ta có thể sử dụng hàm Append
thay vì Rewrite
.
Dưới đây là một ví dụ về cách đọc dữ liệu từ một tệp đầu vào (input file) và ghi kết quả ra một tệp đầu ra (output file) trong Pascal:
program FileIOExample;
type
MyInputFile = file of Integer;
MyOutputFile = file of Real;
var
inputFile: MyInputFile;
outputFile: MyOutputFile;
num: Integer;
result: Real;
begin
Assign(inputFile, 'input.txt'); // gán tên tệp đầu vào
Reset(inputFile); // mở tệp đầu vào để đọc
Assign(outputFile, 'output.txt'); // gán tên tệp đầu ra
Rewrite(outputFile); // mở tệp đầu ra để ghi
while not EOF(inputFile) do // lặp qua tất cả các số trong tệp đầu vào
begin
Read(inputFile, num); // đọc số từ tệp đầu vào
result := sqrt(num); // tính căn bậc hai của số đó
Write(outputFile, result); // ghi kết quả vào tệp đầu ra
end;
Close(inputFile); // đóng tệp đầu vào
Close(outputFile); // đóng tệp đầu ra
end.
Trong ví dụ này, chúng ta đã định nghĩa hai kiểu tệp mới là MyInputFile
và MyOutputFile
, lần lượt là kiểu tệp đầu vào và tệp đầu ra của chương trình. Sau đó, chúng ta đã khai báo biến inputFile
và outputFile
kiểu tương ứng để đại diện cho tệp đầu vào và tệp đầu ra.
Trong thân chương trình, chúng ta đã sử dụng hàm Assign
để gán tên tệp đầu vào và tệp đầu ra cho biến tương ứng. Sau đó, chúng ta đã sử dụng hàm Reset
để mở tệp đầu vào để đọc, và Rewrite
để mở tệp đầu ra để ghi.
Trong vòng lặp while, chúng ta đã sử dụng hàm Read
để đọc từng số từ tệp đầu vào và tính căn bậc hai của nó. Sau đó, chúng ta đã sử dụng hàm Write
để ghi kết quả vào tệp đầu ra.
Cuối cùng, chúng ta đã sử dụng hàm Close
để đóng tệp đầu vào và tệp đầu ra sau khi hoàn tất việc đọc và ghi dữ liệu.