Bài giảng Tin học đại cương Phần 2: Bài 8 - Nguyễn Thành Kiên
lượt xem 4
download
Cùng tìm hiểu "Tệp dữ liệu" là nội dung bài 8 thuộc bộ "Bài giảng Tin học đại cương Phần 2" hướng đến trình bày. Ở bài này các bạn sẽ được tìm hiểu về khái niệm và phân loại tệp; các thao tác với tệp.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Tin học đại cương Phần 2: Bài 8 - Nguyễn Thành Kiên
- TIN HỌC ĐẠI CƯƠNG Bài 8. TỆP DỮ LIỆU. Nguyễn Thành Kiên Bộ môn Kỹ thuật máy tính Khoa Công nghệ thông tin – ĐHBK HN
- Bài 8. TỆP DỮ LIỆU 8.1. Khái niệm và phân loại tệp 8.2. Các thao tác với tệp 8.2.1. Khai báo 8.2.2 Mở tệp 8.2.3. Truy nhập tệp văn bản 8.2.4. Truy nhập tệp nhị phân 8.2.5. Đóng tệp 2
- Bài 8. TỆP DỮ LIỆU 8.1. Khái niệm và phân loại tệp 8.2. Các thao tác với tệp 8.2.1. Khai báo 8.2.2 Mở tệp 8.2.3. Truy nhập tệp văn bản 8.2.4. Truy nhập tệp nhị phân 8.2.5. Đóng tệp 3
- 8.1. Khái niệm và phân loại tệp Khái niệm tệp dữ liệu: Tệp dữ liệu (File) là một tập hợp các dữ liệu có liên quan với nhau và có cùng kiểu dữ liệu. Tệp được lưu trữ trên các thiết bị nhớ ngoài (đĩa mềm, đĩa cứng, CDROM…) với một tên nào đó để phân biệt với nhau. Tệp là phương tiện dùng để cất giữ dữ liệu lâu dài. 4
- 8.1. Khái niệm và phân loại tệp Phân loại tệp: dựa theo bản chất dữ liệu của tệp, chia thành 2 loại: Tệp văn bản (text file): là tệp mà các phần tử của nó là các kí tự như chữ cái, chữ số, các dấu câu, các dấu cách và một số kí tự điều khiển Tệp nhị phân (binary file): là tệp mà các phần tử của nó là các số nhị phân 0 và 1 mã hóa thông tin. Thông tin được mã hóa bởi các bit nhị phân có thể là số nguyên, số thực, các cấu trúc dữ liệu… Nếu thông tin được mã hóa là kí tự thì khi đó tệp nhị phân trở thành tệp văn bản. Vì vậy tệp văn bản là một trường hợp riêng của tệp nhị phân. 5
- 8.1. Khái niệm và phân loại tệp Tổ chức của tệp Tên tệp OS Con tr ỏ vị trí đang Phần tử kí hiệu làm việc của tệp kết thúc tệp . . . . . E O F Phần tử dữ liệu Phần tử dữ liệu đầu tiên cuối cùng 6
- 8.1. Khái niệm và phân loại tệp Con trỏ tệp: Các phần tử của một tệp tạo thành một dãy và tại một thời điểm ta chỉ có thể truy cập được vào một phần tử của tệp mà thôi. Con trỏ tệp (File positon locator) là biến đệm để truy cập vào một phần tử của tệp, đánh dấu vị trí truy cập vào tệp tại thời điểm xác định. Khi mở tệp con trỏ tệp sẽ luôn trỏ vào vị trí đầu tiên của tệp. Sau mỗi thao tác đọc ghi trên tệp, con trỏ tệp sẽ tự động dịch chuyển về phía cuối tệp. Khoảng cách dịch chuyển (tính theo byte) sẽ bằng số byte đã được đọc từ tệp hoặc ghi lên tệp. 7
- 8.1. Khái niệm và phân loại tệp Quy trình thao tác với tệp: Các thao tác với tệp phải tuân thủ theo trình tự sau: Khai báo tệp Mở tệp để làm việc Truy nhập tệp Đóng tệp 8
- Bài 8. TỆP DỮ LIỆU 8.1. Khái niệm và phân loại tệp 8.2. Các thao tác với tệp 8.2.1. Khai báo 8.2.2 Mở tệp 8.2.3. Truy nhập tệp văn bản 8.2.4. Truy nhập tệp nhị phân 8.2.5. Đóng tệp 9
- Bài 8. TỆP DỮ LIỆU 8.1. Khái niệm và phân loại tệp 8.2. Các thao tác với tệp 8.2.1. Khai báo 8.2.2 Mở tệp 8.2.3. Truy nhập tệp văn bản 8.2.4. Truy nhập tệp nhị phân 8.2.5. Đóng tệp 10
- 8.2.1. Khai báo tệp Trong C truy nhập tệp phải thông qua con trỏ tệp. Một con trỏ tệp (file pointer) được khai báo như sau: FILE *tên_con_trỏ_tệp; Ví dụ FILE *f1, *f2; 11
- Bài 8. TỆP DỮ LIỆU 8.1. Khái niệm và phân loại tệp 8.2. Các thao tác với tệp 8.2.1. Khai báo 8.2.2 Mở tệp 8.2.3. Truy nhập tệp văn bản 8.2.4. Truy nhập tệp nhị phân 8.2.5. Đóng tệp 12
- 8.2.2 Mở tệp Cú pháp: tên_con_trỏ_tệp=fopen(tên_tệp,chế_độ_mở_tệp); Tên_tệp là đường dẫn đến tệp. Chế độ mở tệp: Kí hiệu Mục đích sử dụng tệp “r” Mở tệp đã có để đọc, không được ghi. Nếu tệp không tồn tại, hàm fopen() sẽ trả lại trạng thái lỗi. Kí hiệu Bản chất dữ liệu của “w” Mở tệp mới để ghi. Nếu tệp đã tồn tại nội dung của nó sẽ bị xóa hết. tệp “a” Mở tệp để ghi thêm dữ liệu vào cuối tệp. Nếu tệp chưa tồn tại, nó sẽ “b” Tệp nhị phân được tạo mới “t” Tệp văn bản “r+” Mở tệp để vừa đọc vừa ghi. Nếu tệp chưa tồn tại thì sẽ báo lỗi “w+” Mở tệp để vừa đọc vừa ghi. Nếu tệp đã tồn tại, nội dung của nó sẽ bị xóa hết. “a+” Mở tệp để ghi thêm dữ liệu vào cuối tệp. Tệp mới sẽ được tạo nếu nó chưa tồn tại. 13
- Ví dụ mở tệp FILE *f1, *f2, *f3; Để mở tệp c:\abc.txt để đọc ta dùng lệnh f1 = fopen("c:\\abc.txt", "rt"); Để mở tệp c:\ho_so.dat để ghi ta dùng lệnh f2 = fopen("c:\\ho_so.dat", "wb"); Để mở tệp c:\abc.txt để vừa đọc và ghi ta dùng lệnh f3 = fopen("c:\\abc.txt", "r+t"); 14
- Lưu ý khi mở tệp Nếu việc mở tệp không thành công, và hàm fopen() sẽ trả về giá trị NULL để báo rằng việc mở tệp không thành công. Khi đó ta nên kiểm tra kết quả trả về này để có những xử lí thích hợp, nếu không chương trình sẽ báo lỗi và tự động thoát ra ngoài. 15
- Lưu ý khi mở tệp Để bắt lỗi phát sinh khi mở tệp ta có thể sử dụng mẫu sau: // Trường hợp mở tệp có lỗi FILE *f; f= fopen(tên_tệp, chế_độ_mở_tệp)) ; if(f== NULL) { } else // Trường hợp mở tệp thành công { } 16
- Bài 8. TỆP DỮ LIỆU 8.1. Khái niệm và phân loại tệp 8.2. Các thao tác với tệp 8.2.1. Khai báo 8.2.2 Mở tệp 8.2.3. Truy nhập tệp văn bản 8.2.4. Truy nhập tệp nhị phân 8.2.5. Đóng tệp 17
- 8.2.3. Truy nhập tệp văn bản Đọc dữ liệu từ tệp: fscanf() fgets() getc() 18
- Hàm fscanf() Cú pháp khai báo: int fscanf(FILE* con_trỏ_tệp, xâu_định_dạng, [danh_sách_địa_chỉ]); Đọc từ tệp văn bản tương ứng với con_trỏ_tệp dãy các dữ liệu. Định dạng DL đọc theo khuôn dạng trong xâu_định_dạng. Lưu các giá trị đọc được vào danh_sách_địa_chỉ. struct { int n; char c; Ví dụ file có nội dung như sau: }a[3]; for(int i=0;i
- Hàm fgets() Cú pháp khai báo: char* fgets(char* xâu_kí_tự, int n, FILE* con_trỏ_tệp); Đọc từ tệp văn bản tương ứng với con_trỏ_tệp dãy các dữ liệu. Đọc dừng khi đọc đủ (n1) ký tự hoặc gặp ký tự xuống dòng. Lưu các giá trị đọc được + “\n\0” vào xâu_ký_tự. Giá trị trả về: nếu đọc thành công hàm fgets() trả về xâu kí tự trỏ bởi xâu_kí_tự, nếu có lỗi nó sẽ trả về con trỏ NULL. 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng tin học đại cương - trường ĐH Tôn Đức Thắng
175 p | 1024 | 287
-
Bài giảng Tin học đại cương - Chương 1: Các vấn đề cơ bản về CNTT
167 p | 419 | 31
-
Bài giảng Tin học đại cương: Bài 1 - ĐH Bách khoa Hà Nội
33 p | 263 | 21
-
Bài giảng Tin học đại cương: Bài 4 - ĐH Bách khoa Hà Nội
8 p | 155 | 13
-
Bài giảng Tin học đại cương: Chương 2 - Tin học và công nghệ thông tin
12 p | 183 | 10
-
Bài giảng Tin học đại cương: Bài 3 - ĐH Bách khoa Hà Nội
14 p | 143 | 8
-
Bài giảng Tin học đại cương - Nguyễn Vũ Duy
95 p | 43 | 8
-
Bài giảng Tin học đại cương: Phần 1 - ThS. Phạm Thanh Bình
18 p | 93 | 6
-
Bài giảng Tin học đại cương: Chương 1 - Đại cương về tin học
16 p | 124 | 5
-
Bài giảng Tin học đại cương: Chương 1 - Thông tin
29 p | 150 | 5
-
Bài giảng Tin học đại cương: MS Excel - ThS. Ngô Cao Định
31 p | 11 | 4
-
Bài giảng Tin học đại cương: Tổng quan về máy tính - ThS. Ngô Cao Định
38 p | 15 | 4
-
Bài giảng Tin học đại cương: Biểu diễn và xử lý thông tin - ThS. Ngô Cao Định
56 p | 7 | 3
-
Bài giảng Tin học đại cương: Mạng và Internet - ThS. Ngô Cao Định
55 p | 9 | 3
-
Bài giảng Tin học đại cương: Hệ điều hành - ThS. Ngô Cao Định
86 p | 8 | 2
-
Bài giảng Tin học đại cương: Chương 1 - Trần Quang Hải Bằng (ĐH giao thông Vận tải)
31 p | 80 | 2
-
Bài giảng Tin học đại cương: Bài 13 - Bùi Thị Thu Cúc
10 p | 78 | 2
-
Bài giảng Tin học đại cương: Tổng quan về cơ sở dữ liệu - ThS. Ngô Cao Định
11 p | 7 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn