0

(Pascal): Chủ đề 9 – KIỂU DỮ LIỆU TỆP

I. Kiểu dữ liệu tệp

1. Vai trò của kiểu tệp

Các bạn suy nghĩ và trả lời các câu hỏi sau nhé!

(?) Các kiểu dữ liệu cơ sở đã học được lưu trữ ở đâu trong quá khi thực hiện chương trình?
(?) Vậy khi tắt máy những dữ liệu này sẽ như thế nào?
(?) Để lưu trữ dữ liệu lâu dài ta lưu ở đâu?
(?) Kiểu dữ liệu nào có thể lưu dữ liệu lâu dài để xử lý nhiều lần?
>> Đặc điểm của kiểu dữ liệu tệp…
Bộ nhớ RAM.Tắt máy dữ liệu sẽ mất hết.
Sử dụng bộ nhớ ngoài.
Kiểu dữ liệu tệp.

2. Phân loại tệp và thao tác với tệp

(?) Theo cách tổ chức tệp được phân làm mấy loại?
(?) Tệp văn bản chứa những gì?
(?) Theo cách truy cập tệp được phân làm mấy loại?
(?) Tệp văn bản thuộc loại truy cập nào?
(?) Số lượng các phần tử trong tệp có cần khai báo trước không?
(?) Thao tác cơ bản làm việc với tệp là gì?
Tệp chia làm 2 loại chính:
Tệp văn bản (Tệp truy cập tuần tự)
Tệp có cấu trúc (Tệp truy cập ngẫu nhiên)
Không cần khai báo trước.
Thao tác đọc/ghi dữ liệu.  

II. Thao tác với tệp

1. Khai báo

Cp: Var<Tên biến tệp>:Text;

Vd: Var f:Text;

2. Thao tác với tệp

a. Gắn tên tệp

Cp: Assign(< biến tệp>,<tên tệp>);

Vd: Gắn  cho tệp f  tên là ‘Songuyen.Dat’ trong ổ đĩa C:\  ta dùng lệnh:

            Assign(f,’C:\Songuyen.Dat’);

b. Mở tệp

Cp: Rewrite(<Biến tệp>); >> mở tệp để ghi dữ liệu;

Reset(<Biến tệp>); >> mở tệp để đọc dữ liệu

Vd1: Mở tệp mới ‘Songuyen.Dat’ để ghi dữ liệu vào ta sử dụng cặp lệnh:

Assign(f,’Songuyen.Dat’); Rewrite(f);

Vd2: Mở tệp ‘Songuyen.Dat’ đã có dữ liệu đọc dữ liệu ra ta sử dụng cặp lệnh:

Assign(f,’Songuyen.Dat’); Reset(f);

c. Đọc/ghi tệp văn bản

Cp: Write/Writeln(<Biến tệp>,<Danh sách kết quả>);

Write/Writeln(f,a,b,c); à Ghi giá trị của biến a,b,c vào tệp f

Cp: Read/Realn(<Biến tệp>,<Danh sách biến>);

Read/Readln(f,a,b); à Đọc từ tệp f lần lượtra biến a,b

  • Hàm Eoln(f): trả về giá trị True nếu con trỏ ở cuối dòng.
  • Hàm Eof(f): trả về giá trị True nếu con trỏ ở cuối tệp.

d. Đóng tệp

Khi không làm việc nữa (kết thúc các thao tác đọc/ghi), đóng tệp tránh mất mát dữ liệu.

(!) Sau khi đóng tệp, muốn mở lại tệp nếu vẫn sử dụng biến tệp cũ thì không cần dùng lệnh Assign.

Cp: Close(<biến tệp>); Vd: Close(f);

* Chú ý:

+ Tự tạo tệp văn bản để chứa dữ liệu: Dùng trình soạn thảo của Pascal để nhập dữ liệu và lưu lại theo phần mở rộng theo yêu cầu.

+ Để mở tệp văn bản đã có: Mở theo cách mở file của Pascal hoặc đặt con trỏ chuột tại tên tệp và nhấn tổ hợp phím Ctrl Enter.

SƠ ĐỒ LÀM VIỆC VỚI TỆP VĂN BẢN

Ví dụ: Cho tệp văn bản DATA.INP chứa các số nguyên được ghi trên cùng một hàng, mỗi số cách nhau một khoảng trắng. Lập chương trình tìm giá trị lớn nhất của các số trong tệp, ghi kết quả tìm được vào tệp DATA.OUT

Đào Đình Ngọc

Trả lời

Email của bạn sẽ không được hiển thị công khai.