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.
Nội dung trích xuất từ tài liệu:
DỮ LIỆU KIỂU TẬP TIN DỮ LIỆU KIỂU TẬP TIN 15.2.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ộtchươ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úngtồ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 tin. Tập tin (file) trong Pascal là một kiểu dữ liệu có cấu trúc. Mỗi tập tin 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ạithà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ậptin và mảng có những điểm rất gần nhau. Song tập tin khác mảng ở nhữngđiểm sau đây: Mảng được tổ chức trong bộ nhớ còn tập tin 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ủatập tin thì không. Các tập tin đượ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ủatập tin được truy xuất nhờ một biến trung gian chỉ điểm vào vị trí của chúngtrê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 tin, gọi là vị trí hiện thời. Dưới đây sẽ trình bày hai loại tập tin thường gặp là tập tin có định kiểuvà tập tin văn bản. 15.2.2. Tập tin có định kiểu: Tập tin mà các phần tử của nó có cùng một kiểu dữ liệu gọi là tập tin cóđịnh kiểu. Kiểu dữ liệu của các phần tử của tập tin có thể là kiểu đơn giản (nguyên, thực, ký tự , lô gic, chuỗi ký tự...) hoặc kiểu có cấu trúc ( mảng, bảnghi). Cách khai báo kiểu tập tin như sau: Type TênkiểuTtin = File of Kiểuphầntử ; V í dụ : 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 tin có các phần tử kiểu nguyên (Integer ), KieuT2 là tập tin có các phần tử là các chuỗi ký tự ( String[20] ),còn KieuT3 là tập tin có các phần tử là các bản ghi kiểu Ksvien. Khi đã có kiểu tập tin, ta có thể khai báo các biến tập tin : Var F1 : KieuT1; F2 : KieuT2; F3 : KieuT3; F1, F2, F3 là các biến kiểu tập tin, một loại biến đặc biệt, không dùngđể gán gía trị như các biến nguyên, thực hay chuỗi. Mỗi biến này đại diệncho một tập tin mà thông qua các biến đó ta có thể thực hiện các thao táctrên tập tin như : tạo tập tin, mở, đóng, xóa tập tin, ghi dữ liệu vào tập tin vàđọc dữ liệu từ tập tin, ... Ngoài cách khai báo các biến F1, F2, F3 thông qua việc địng nghĩa cáckiể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ếntập tin như sau: Var TênbiếnTtin : File of Kiểuphầntử ; Ví dụ: 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 ; 15.2.2.1. Các thủ tục chuẩn: 1) Thủ tục ASSIGN( biếntậptin, têntậptin) :Gán tên tập tin cho biến tập tin. Ở đây tên tập tin là một biểu thức kiểuchuỗi là tên thực sự của tập tin. Ví dụ :Assign(F1, ‘DLIEU.DAT’);Assign(F3, ‘QLSV.DAT’);Sau hai lệnh này, biến F1 đồng nhất với tập tin DLIEU.DAT, mọi thao táctrên biến F1 chính là thao tác trên tập tin DLIEU.DAT. Tương tự, biến F3đồng nhất với tập tin QLSV.DAT 2) Thủ tục REWRITE( biếntậptin) :Khởi tạo tập tin mới, nếu tập tin đã có trên đĩa thì nó xóa đi và tạo mới. Vídụ :Rewrite(F1) ; khởi tạo tập tin DLIEU.DATRewrite(F3) ; khởi tạo tập tin QLSV.DAT 3) Thủ tục RESET(biếntậptin):Mở tập tin đã có để sử dụng. Con trỏ tập tin trỏ vào phần tử đầu tiên (có sốthứ tự là 0) của tập tin .Ví dụ : Reset ( F3); mở tập tin QLSV.DAT 4) Thủ tục WRITE( biếntậptin, b1, b2, ..., bN):Tuần tự ghi vào tập tin các gía trị của các biến b1, b2, ..., bN. Các biến b1,..., bN phải cùng kiểu dữ liệu với các phần tử của tập tin.Ví dụ:- Cho i, j, k là các biến kiểu Integer và i=10, j=20, k=100, khi đó lệnh : Write(F1, i, j, k ) ;sẽ ghi lần lượt các gía trị 10, 20, 100 vào tập tin DLIEU.DAT-Cho khai báo: Var X : Ksvien; Các lệnh sau gán gía trị cho X và ghi X vào tập tin QLSV.DAT: X.Ten:=’Ng Van An’; X.Namsinh :=1980 ; X.DTB :=6.5; Write(F3, X); Sau khi ghi X vào tập tin QLSV.DAT, con trỏ tập tin tự động dời đến vịtrí của phần tử tiếp theo. 5) Thủ tục READ( biếntậpti ...