Kiểu tệp (file) trong Pascal 2020-07-31T21:36:01+07:002020-07-31T21:36:01+07:00https://sachgiai.com/Tin-hoc/kieu-tep-file-trong-pascal-13446.htmlhttps://sachgiai.com/uploads/news/2020_07/lap-trinh-pascal.jpgSách Giảihttps://sachgiai.com/uploads/sach-giai-com-logo.pngThứ sáu - 31/07/2020 21:30 1. KHÁI NIỆMCác kiểu dữ liệu ta đã khảo sát đều hiện diện trong bộ nhớ RAM khi khởi động chương trình, nhưng khi chấm dứt chương trình, các dữ liệu bị xóa mất, vì vậy, việc lưu trữ dữ liệu lâu dài hoặc sử dụng lại nhiều lần không thể thực hiện được. PASCAL đã tạo ra một kiểu cho phép ta lưu trữ dữ liệu lâu dài trên đĩa mềm hoặc đĩa cứng gọi là dữ liệu kiểu File. 2. ĐỊNH NGHĨA File là một cấu trúc dữ liệu gồm nhiều phần tử cùng kiểu được nhóm lại với nhau tạo thành một dây. Thông thường có 2 loại File: - File có kiểu: Mỗi phần tử của File là một dữ liệu kiểu cơ sở hay kiểu Record. - File dạng TEXT: Dữ liệu được lưu trữ trên đĩa có thành phần cơ bản là các kí tự, cấu trúc lại thành các dòng, mỗi dòng được kết thúc bởi dấu Eoln, File được kết thúc bởi dấu Eof. 3. CÁCH KHAI BÁO
Cách viết
Ý nghhĩa
TYPE F: FILE OF KPT VAR X, Y, F; ASSIGN (Filevar, Tên File) REWRITE (Biến File); WRITE (Filevar, X1; X2, ..., Xn); CLOSE (Filevar); ASSIGN (Filevar, Ten File) RESET (Filevar); READ (Filevar, X1; X2, ..., Xn)
Định nghĩa kiểu R là File của các kiểu phần tử. Biến X, Y thuộc kiểu F Mở File để chuẩn bị viết. Viết các giá trị X1, X2, ..., Xn vào File. Đóng File. Mở File để chuẩn đọc. Đọc các giá trị của File ra các biến X1; X2, ..., Xn.
4. CÁC THAO TÁC TRÊN FILE • ASSIGN (filevar, filename) filevar là 1 biến file, filename là 1 biểu thức kiểu string. Tác dụng là gán 1 tên thực sự filename cho 1 biến file, filename là tên của file khi ghi lên đĩa. • REWRITE (filever,x) x là 1 hay nhiều biến thuộc kiểu thành phần của kiểu file (nếu nhiều thì phân cách nhau bởi dấu phẩy) ■ Ví dụ: Read (f 1, HK, KT); • WRITE (filevar, x) Ghi biến x lên file. • CLOSE (filevar) Đóng file để tránh bị hư hao, mất mát dữ liệu. SEEK (Filevar, n) - n là biểu thức integer - Các phần tử của file được đánh số từ 0, 1, ...n - Seek (filevar, n) sẽ cho phép ta truy xuất phần tử được đánh số n của file. • ERASE (filevar) - Để xóa 1 file - File cần xóa phải được đóng rồi. • RENAME (filevar, newname): Đổi tên file thành newname. 5. CÁC HÀM TRÊN FILE Mỗi file có 1 con trỏ như là người chỉ đường, khi truy xuất phần tử nào đó của file xong, con trỏ sẽ chỉ đến phần tử kế tiếp. • EOF (filevar) Cho trị là true nếu hết file hay con trỏ có vị trí cuối file. • FILEPOS (filevar) Cho trị kiểu integer. Cho biết vị trí hiện tại của con trỏ file. • FILESIZE (filevar) Cho trị kiểu integer. Cho biết chiều dài của file. ■ Ví dụ 1: Viết chương trình ghi vào đĩa 1.00 số tự nhiên (từ 1 đến 100). Program GHI; var i: integer; f: file of integer; Begin Assign (f, INTEGER.GHI') Rewrite(f); For i:= to 100 do write(f,i); Close(f) End. ■ Ví dụ 2: Viết chương trình nhập điểm các môn Toán, Lý, Hóa của từng học sinh và ghi vào đĩa. Program Nhap; Type Diem = Record Hoten: String[20]; T, L, H: integer; End; fd = file of Diem; Var hs: Diem; f: fd; b: boolean; Begin Assign (f .DIEM.DTA); Rewrite(f); b := True; While b do With hs do Begin Write(Họ và tên Học sinh:'); Readln(Hoten); If Hoten = ' ' then b:= false else Begin Write ('Điểm Toán ='); Readln(T); Write ('Điểm Lý ='); Readln(L); Write ('Điểm Hóa ='); Readln(H); Write (f, hs); End; End; Close(f); End. ■ Ví dụ 3: Viết chương trình thực hiện các việc sau: a. Đọc từ bàn phím một danh sách gồm họ, tên, môn thi thứ nhất, điểm môn thi thứ nhất, môn thi thứ hai, điểm môn thi thứ hai. b. Ghi vào đĩa mềm với tên File QLHT. c. Đọc dữ liệu từ File (QLHT, tìm những học sinh phải thi lại (có ít nhất một môn không đạt)). Đưa số thứ tự, họ tên, các môn thi phải thi lại và điếm tương ứng ra màn hình. Program THI; USED Crt; TYPE Phdiem = record ht: string[25]; mhl: string[10]; d1: real; mh2: string [10]; d2: real; end; VAR Pd : Phdiem; f: file of Phdiem; n, i, tt: integer; BEGIN ClrScr; Write ('So phieu diem n ='); Readln(n); Assign (F, 'QLHT'); ReWrite (F); For i:= 1 to n do With Pd do Begin Writeln ('Vao phieu diem thu', i); Write ('Ho va ten:'); readln(ht); Write ('Mon thu 1:'); Readln (mhl); Write ( Diem mon thu 1 :’); Readln (d1); Write ('Mon thu 2 :’); Readln (mh2); Write ( Diem mon thu 2:') Readln (d2); Write (F, Pd); end; Close(F); ClrScr; Writeln ('DANH SACH HOC SINH THI LAI'); Writeln; Assign (F, 'QLHT'); Reset(F); tt := 0; While not Eof (F) do Begin; Read (R, Pd); With Pd do If (d1 < 5) or (d2 < 5) then Begin; Inc(tt); Write (tt: 3, ht,’’: 30-Lenght(ht)); If d1 < 5 then Write (mh1, ‘’: 7-Lenght(mh1),' :, d1: 4 : 1,’ ‘: 8); If d2 < 5 then Write(mh2, ‘’: 7-Lenght(mh2),':, d2: 4: 1); Writeln; End; End; Close(F); Writeln; Write ('An ENTER de ket thuc !'); Readln; END. ■ Ví dụ 4: Lập chương trình kiểm tra xem một file có tên đưa từ bàn phím có trong đĩa ở ổ chủ không? Nếu có thì cho biết độ dài của nó. Tổ chức chương trình hội thoại để thực hiện nhiều lần cho đến khi ấn phím Esc. Program KT-File; USE Crt; VAR F: file of byte; s: string[79]; Ch: Char; BEGIN ClrScr; Gotoxy(12,25); Write('An phim bat ki de tiep tuc'); Write(‘An ESC de ra khoi chuong trinh'); Window (1,1,80,23); {đặt cửa sổ làm việc} Gotoxy(l,l); Repeat Write(‘Cho biet ten file can tim:'); Readln(S); assign(F,S); {$I-} Reset(F); {$I+} If IOResult = 0 then Begin Write ('File',S' co kich thuoc la:'); Writein (Filesize(f), 'bytes.'); End; Else Writeln (‘Khong tim thay File',S' !'); Writeln; Ch:= ReadKey; Until ch = 27; Window(l,l,80,25); {Trả lại cửa sổ ngầm định} END.
Ý kiến bạn đọc
Sắp xếp theo bình luận mới Sắp xếp theo bình luận cũ Sắp xếp theo số lượt thích
Theo dòng sự kiện
Lập trình trò chơi đổi màu bi trong Pascal
Lập trình trò chơi tính điểm quân đôminô trong Pascal
Xem tiếp...
Những tin mới hơn
Giới thiệu lập trình có cấu trúc trong Pascal
Đơn vị (unit) của Turbo Pascal
Những tin cũ hơn
Kiểu bản ghi (record) trong Pascal
Kiểu dữ liệu tập hợp (set) trong Pascal
Lớp 1
Kết nối tri thức
Tiếng Việt 1
Toán 1
Giáo dục thể chất 1
Mỹ thuật 1
Chân trời sáng tạo
Tiếng Việt 1
Toán 1
Cánh diều
Âm nhạc 1
Giáo dục thể chất 1
Hoạt động trải nghiệm 1
Toán 1
Tự nhiên và xã hội 1
Lớp 2
Kết nối tri thức
Toán 2
Tiếng Việt 2
Chân trời sáng tạo
Tiếng Việt 2
Toán 2
Cánh diều
Toán 2
Tiếng Việt 2
Lớp 3
Kết nối tri thức
Tiếng Việt 3
Toán 3
Cánh diều
Tiếng Việt 3
Toán 3
Chân trời sáng tạo
Tiếng Việt 3
Toán 3
Lớp 4
Kết nối tri thức
Tiếng Việt 4
Toán 4
Chân trời sáng tạo
Tiếng Việt 4
Toán 4
Cánh diều
Tiếng Việt 4
Toán 4
Lớp 5
Kết nối tri thức
Tiếng Việt 5
Toán 5
Cánh diều
Tiếng Việt 5
Toán 5
Chân trời sáng tạo
Tiếng Việt 5
Toán 5
Lớp 6
Kết nối tri thức
Ngữ Văn 6
Toán 6
Tiếng Anh 6 Global Success
Lịch sử và Địa lí 6
Giáo dục công dân 6
Tin học 6
Cánh diều
Giáo dục công dân 6
Ngữ Văn 6
Toán 6
Chân trời sáng tạo
Ngữ Văn 6
Toán 6
Giáo dục công dân 6
Lớp 7
Kết nối tri thức
Ngữ Văn 7
Toán 7
Tiếng Anh 7 Global Success
Giáo dục công dân 7
Lịch sử và Địa lí 7
Khoa học tự nhiên 7
Tin học 7
Công nghệ 7
Cánh Diều
Ngữ Văn 7
Toán 7
Khoa học tự nhiên 7
Chân trời sáng tạo
Ngữ Văn 7
Toán 7
Mĩ thuật 7
Âm nhạc 7
Lớp 8
Kết nối tri thức
Ngữ Văn 8
Toán 8
Khoa học tự nhiên 8
Giáo dục công dân 8
Tin học 8
Lịch sử và Địa lí 8
Công nghệ 8
Tiếng Anh 8 Global Success
Cánh Diều
Ngữ Văn 8
Toán 8
Công Dân 8
Chân trời sáng tạo
Ngữ Văn 8
Toán 8
Lớp 9
Kết nối tri thức
Ngữ Văn 9
Toán 9
Khoa học tự nhiên 9
Giáo dục công dân 9
Tin học 9
Lịch sử và Địa lí 9
Tiếng Anh 9 Global Success
Công nghệ 9
Cánh Diều
Ngữ Văn 9
Toán 9
Chân trời sáng tạo
Ngữ Văn 9
Toán 9
Lớp 10
Kết nối tri thức
Ngữ Văn 10
Toán 10
Kinh tế và Pháp luật 10
Tiếng Anh 10 Global Success
Lịch Sử 10
Địa Lí 10
Vật Lí 10
Hoá học 10
Sinh học 10
Công nghệ trồng trọt 10
Công nghệ thiết kế 10
Quốc Phòng và An Ninh 10
Tin học 10
Cánh Diều
Ngữ Văn 10
Toán 10
Kinh tế và Pháp luật 10
Tin học 10
Hoá học 10
Lịch sử 10
Địa Lí 10
Sinh học 10
Vật lí 10
Tiếng Anh 10 Explore New Worlds
Công nghệ trồng trọt 10
Công nghệ thiết kế 10
Chân trời sáng tạo
Ngữ Văn 10
Toán 10
Lịch Sử 10
Địa Lí 10
Sinh học 10
Vật Lí 10
Hoá học 10
Quốc Phòng và An Ninh 10
Kinh tế và Pháp luật 10
Tiếng Anh 10 Friends plus
Lớp 11
Kết nối tri thức
Ngữ Văn 11
Toán 11
Hoá học 11
Sinh học 11
Địa Lí 11
Lịch Sử 11
Vật Lí 11
Kinh tế và Pháp luật 11
Công nghệ 11 Chăn nuôi
Công nghệ 11 Cơ khí
Tin học 11 Ứng dụng
Tin học 11 Khoa học máy tính
Tiếng Anh 11 Global Success
Cánh Diều
Ngữ Văn 11
Toán 11
Hoá học 11
Lịch Sử 11
Địa Lí 11
Sinh học 11
Vật Lí 11
Tin học 11 Ứng dụng
Tin học 11 Khoa học máy tính
Tiếng Anh 11 Explore New Worlds
Quốc phòng và An ninh 11
Kinh tế và Pháp luật 11
Công nghệ 11 Chăn nuôi
Công nghệ 11 Cơ khí
Chân trời sáng tạo
Ngữ Văn 11
Toán 11
Địa Lí 11
Hoá học 11
Sinh học 11
Lịch Sử 11
Kinh tế và Pháp luật 11
Tiếng Anh 11 Friends plus
Vật Lí 11
Lớp 12
Kết nối tri thức
Ngữ Văn 12
Toán 12
Địa Lí 12
Hoá học 12
Lịch Sử 12
Sinh học 12
Vật Lí 12
Tiếng Anh 12 Global Success
Tin học 12 Ứng dụng
Tin học 12 Khoa học máy tính
Kinh tế và Pháp luật 12
Công nghệ 12 Chăn nuôi
Công nghệ 12 Cơ khí
Cánh Diều
Ngữ Văn 12
Toán 12
Chân trời sáng tạo
Ngữ Văn 12
Toán 12
THÀNH VIÊN
Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site Nhập mã do ứng dụng xác thực cung cấp Thử cách khác Nhập một trong các mã dự phòng bạn đã nhận được. Thử cách khác Đăng nhập Đăng ký