Đọc và ghi tệp trong Pascal

Lập trình Pascal

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à MyInputFileMyOutputFile, 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 inputFileoutputFile 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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *