Trường Đại học Điện lực Tập đoàn Điện lực Việt Nam


Kiểu tệp (FILE) 7.5.1. Khái niệm



tải về 1.67 Mb.
trang39/48
Chuyển đổi dữ liệu18.07.2016
Kích1.67 Mb.
#1821
1   ...   35   36   37   38   39   40   41   42   ...   48

7.5. Kiểu tệp (FILE)

7.5.1. Khái niệm


Nhập và xuất dữ liệu là hai công việc rất phổ biến khi thực hiện một chương trình. Cho đến nay, ta mới chỉ nhập dữ liệu từ bàn phím và xuất dữ liệu ra màn hình. Các dữ liệu này được tổ chức trong bộ nhớ của máy, chúng tồn tại khi chương trình đang chạy và bị xóa khi chương trình kết thúc. Muốn lưu trữ các dữ liệu lâu dài để sử dụng nhiều lần thì phải ghi chúng lên đĩa thành các tệp.

Tệp (file) trong Pascal là một kiểu dữ liệu có cấu trúc. Mỗi tệp là một tập hợp các phần tử có cùng chung một kiểu dữ liệu được nhóm lại thành một dãy và được ghi trên đĩa dưới một cái tên chung. Khái niệm tệp và mảng có những điểm rất gần nhau. Song tệp khác mảng ở những điểm sau đây:

Mảng được tổ chức trong bộ nhớ còn tệp chủ yếu được tổ chức trên đĩa.

Số phần tử của mảng được xác định ngay khi khai báo, còn số phần tử của tệp thì không. Các tệp được kết thúc bằng một dấu hiệu đặc biệt gọi là EOF ( End Of File).

Các phần tử của mảng được truy xuất thông qua chỉ số. Các phần tử của tệp được truy xuất nhờ một biến trung gian chỉ điểm vào vị trí của chúng trên đĩa, gọi là con trỏ tệp. Tại mỗi thời điểm, con trỏ sẽ chỉ vào một vị trí nào đó trong tệp, gọi là vị trí hiện thời.
Cách khai báo kiểu tệp như sau:
Type Tên_kiểu_Tệp = File of Kiểu_phần_tử ;

Ví dụ 7.57:

Type Ksvien = Record

Ten: String[20];

Namsinh : Integer;

DTB : Real;

end;


KieuT1 = File of Integer;

KieuT2 = File of String[20];

KieuT3 = File of Ksvien ;

Theo khai báo trên thì KieuT1 là tệp có các phần tử kiểu nguyên (Integer), KieuT2 là tệp có các phần tử là các chuỗi ký tự ( String[20] ), còn KieuT3 là tệp có các phần tử là các bản ghi kiểu Ksvien.

Khi đã có kiểu tệp, ta có thể khai báo các biến tệp :

Var F1 : KieuT1;

F2 : KieuT2;

F3 : KieuT3;

F1, F2, F3 là các biến kiểu tệp, một loại biến đặc biệt, không dùng để gán giá trị như các biến nguyên, thực hay chuỗi. Mỗi biến này đại diện cho một tệp mà thông qua các biến đó ta có thể thực hiện các thao tác trên tệp như : tạo tệp, mở, đóng, xóa tệp, ghi dữ liệu vào tệp và đọc dữ liệu từ tệp, ...

Ngoài cách khai báo các biến F1, F2, F3 thông qua việc định nghĩa các kiểu dữ liệu mới như trên, Pascal còn cho phép khai báo trực tiếp các biến tệp như sau:

Var TênbiếnTệp : File of Kiểuphầntử ;

Ví dụ 7.58: có thể khai báo ba biến F1, F2, F3 nói trên theo cách sau :

Type Ksvien = Record

Ten: String[20];

Namsinh : Integer;

DTB : Real;

end;


Var F1 : File of Integer;

F2 : File of String[20];

F3 : File of Ksvien ;

7.5.2. Cấu trúc và phân loại tệp


Các phần tử của tệp không có tên nên truy cập không thể tùy tiện được. Các phần tử của tệp được sắp xếp thành một dãy và mỗi thời điểm chương trình chỉ có thể truy cập tệp thông qua một biến đệm. Biến đệm dùng để đánh dấu vị trí truy cập tệp hay còn gọi là cửa sổ tệp. Mỗi tệp đều có một ký hiệu kết thúc gọi là EOF(F) - End of File F. Việc phân loại tệp dựa trên việc bố trí các phần tử của tệp và cách truy cập tệp: truy cập tệp tuần tự và truy cập tệp trực tiếp.

7.5.3. Tệp định kiểu


Như đã nêu ở phần trên, tệp là cấu trúc để lưu trữ nhiều dữ liệu. Nếu tệp lưu các phần tử dữ liệu cùng kiểu thì ta có tệp định kiểu.

- Tệp định kiểu là tập hợp các phần tử dữ liệu cùng kiểu, xếp liền nhau;

- Số phần tử hay kích thước của tệp có thể thay đổi trong thời gian thực hiện chương trình ;

- Kích thước tệp không được xác định khi khai báo.


Cú pháp:

Type tên kiểu tệp = File of kiểu phần tử ;


Trong đó kiểu phần tử của tệp gọi là kiểu cơ sở, có thể là bất kì kiểu gì, trừ kiểu tệp.

Ví dụ 7.59:


TYPE TepSoThuc = FILE OF Real ;

TepSoNguyen = FILE OF Integer ;

TepHoSo = FILE OF LyLich ;

VAR F1: TepSoThuc ;

F2: TepSoNguyen ;

F3: TepHoSo ;


Cũng có thể khai báo tắt, kết hợp khai báo biến với mô tả kiểu tệp:

F1: FILE OF Real ;

F2: FILE OF Integer;

F3: FILE OF LyLich ;


Biến kiểu tệp là biến đại diện cho tệp. Mọi việc truy cập tệp đều phải thông qua biến tệp.

7.5.4. Tệp truy cập tuần tự

Mô tả cấu trúc


Theo định nghĩa, tệp là tập hợp các phần tử dữ liệu cùng kiểu, xếp liền nhau, do đó có thể coi tệp như một mảng với kích thước co giãn được.

Cấu trúc của mảng có khuôn mẫu cố định nên có thể truy cập trực tiếp vào các phần tử qua chỉ số mảng. Trái lại, các phần tử làm nên tệp không được đánh chỉ số, vì có thể bị di chuyển do các thao tác thêm bớt vào nội dung.

Tại một thời điểm chỉ có thể truy cập vào một phần tử thông qua giá trị của một biến đệm.

































Có thể minh hoạ biến đệm như một cửa sổ di động dọc theo tệp để nhìn vào các phần tử tệp. Tại một thời điểm của sổ này nằm ở một vị trí xác định.

Cửa sổ sẽ tự động dịch đến phần tử kế tiếp sau mỗi lần truy cập.

Có dấu hiệu đặc biệt EOF tại vị trí kết thúc tệp và hàm chuẩn Eof (F) cho biết cửa sổ tệp của tệp F đã ở phần tử cuối tệp hay chưa. Eof (F) = True nếu đã ở vị trí cuối tệp, Eof (F) = False nếu trái lại.

Tệp được tổ chức như trên gọi là tệp truy cập tuần tự - Sequential access.

Với tệp truy cập tuần tự, muốn đọc một phần tử nào đó phải đi qua các phần tử đứng trước. Muốn thêm một phần tử phải đưa cửa sổ về cuối tệp.

Hình ảnh của tệp truy cập tuần tự là băng từ.

Tóm lại, tệp truy cập tuần tự có cấu trúc đơn giản và dễ xây dựng nhưng kém linh hoạt.

Pascal chuẩn chỉ định nghĩa tệp truy cập tuần tự. TurboPascal có cung cấp kiểu tệp truy cập trực tiếp, cho phép đặt của sổ tệp vào một vị trí bất kì trong tệp và truy cập các phần tử tệp tương tự như truy cập mảng.


Каталог: images
images -> Hướng dẫn sử dụng Dropbox Để sử dụng được Dropbox
images -> BÀi thuyết trình cách xáC ĐỊnh và chế ĐỘ pháp lý CỦa các vùng biển theo công ưỚc của liên hiệp quốc về luật biển năM 19821
images -> Céng hßa x· héi chñ nghÜa viÖt nam Độc lập tự do hạnh phúc
images -> Lúa gạo Việt Nam Giới thiệu
images -> Trung Tâm kt tc-đl-cl
images -> Số: 105/2008/QĐ-ttg CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
images -> ChuyêN ĐỀ ĐẠi số TỔ HỢP, XÁc suất kiến thức cơ bản Đại số tổ hợp
images -> BỘ giáo dục và ĐÀo tạo trưỜng đẠi học luật tp. HỒ chí minh dưƠng kim thế nguyên thủ TỤc phá SẢn các tổ chức tín dụng theo pháp luật việt nam
images -> Review of Condor, Sun Grid Engine and pbs

tải về 1.67 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   35   36   37   38   39   40   41   42   ...   48




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương