TÀI LIỆU VỀ LẬP TRÌNH CĂN BẢN - KIỂU TẬP TIN
lượt xem 7
download
Một số khái niệm về tập tin (file) (1) - Tại sao ta cần đến kiểu tập tin? - Cho phép lưu trữ dữ liệu ở bộ nhớ ngoài (đĩa). - Khi kết thúc chương trình thì dữ liệu vẫn còn do đó chúng ta có thể sử dụng nhiều lần. - Kích thước lớn dữ liệu không hạn chế.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: TÀI LIỆU VỀ LẬP TRÌNH CĂN BẢN - KIỂU TẬP TIN
- Một số khái niệm về tập tin (file) (1) Tại sao ta cần đến kiểu tập tin? LẬP TRÌNH CĂN BẢN l Cho phép lưu trữ dữ liệu ở bộ nhớ ngoài (đĩa). l Khi kết thúc chương trình thì dữ liệu vẫn còn do l KIỂU TẬP TIN đó chúng ta có thể sử dụng nhiều lần. Kích thước lớn dữ liệu không hạn chế. l 1 3 Nội dung chương này Một số khái niệm về tập tin (file) (2) Có 3 loại dữ liệu kiểu tập tin: Một số khái niệm về tập tin l l Tập tin văn bản (Text File) l Các thao tác trên tập tin l l Dùng để ghi các ký tự lên đĩa (dưới dạng mã Ascii) Truy c ập tập tin văn bản l Có chứa: l l Ký hiệu ‘\n’ : xuống dòng Truy c ập tập tin nhị phân l l Kí tự EOF (End Of File) có mã Ascii là 26: nằm ở cu ối tập tin Tập tin định kiểu (Typed File) l l Gồm nhiều phần tử có cùng kiểu: char, int, long, struct … l Được lưu tr ữ trên đĩa dưới dạng một chuỗ i các byte liên t ục. Tập tin không định kiểu (Untyped File) l l Gồm các cấu trúc dữ liệu mà ta không quan tâm đến nội dung hoặc kiểu của nó. l Ta chỉ lưu ý đến các yếu t ố vật lý của tập tin như độ lớn, ... 2 4
- Khai báo biến tập tin Một số khái niệm về tập tin (file)(3) Biến tập tin Cú pháp: l l Được dùng để đại diện cho một tập tin l FILE ; Các thao tác lên tập tin sẽ được thực hiện thông qua biến này l Các biến trong danh sách phải là các con trỏ và l Con trỏ tập tin l được phân cách bởi dấu phẩy(,). Tại mỗi thời điểm, sẽ có một vị trí của tập tin mà tại đó việc l đọc/ghi thông tin sẽ xảy ra Ví dụ: l Ta hình dung có 1 con trỏ đang chỉ đến vị trí đó l FILE *f1,*f2; Sau khi đọc/ghi xong dữ liệu, con trỏ sẽ chuyển dịch thêm một l phần tử về phía cuối tập tin. Sau phần tử dữ liệu cuối cùng của tập tin là dấu kết thúc tập tin l EOF 5 7 Các thao tác trên tập tin Mở tập tin (1) Khai báo biến tập tin Cú pháp: l l Mở tập tin l FILE *fopen(char *Path, const char *Mode) Ý nghĩa: Đóng tập tin l l Trả về con trỏ tập tin của tập tin được mở Kiểm tra đến cuối tập tin hay chưa? l l Trả về NULL nếu có lỗi Di chuyển con trỏ tập tin về đầu tập tin - Hàm l l rewind() 6 8
- Mở tập tin (2) Đóng tập tin Path: chuỗi chỉ đường dẫn đến tập tin trên đĩa Cú pháp : int fclose(FILE *f) l l Type: chuỗi xác định cách thức mà tập tin sẽ mở. Các giá trị Ghi dữ liệu còn lại trong vùng đệm vào tập tin và đóng lại tập tin l l có thể của Mode: f là con trỏ tập tin được mở bởi hàm fopen() l Giá trị trả về là 0 báo rằng việc đóng tập tin thành công l Giá trị trả về là EOF nếu có xuất hiện lỗi l Cú pháp : int fcloseall() l Đóng tất cả các tập tin lại l Trả về tổng số các tập tin được đóng lại l Nếu không thành công, kết quả trả về là EOF l 9 11 Kiểm tra đến cuối tập tin hay Mở tập tin (3) chưa? Ví dụ: Mở một tập tin tên TEST.txt để ghi. Cú pháp: l l FILE *f; int feof(FILE *f) f = fopen(“TEST.txt”, “w”); Ý nghĩa: l if (f!=NULL){ Kiểm tra xem đã chạm tới cuối tập tin hay chưa. // Các câu lệnh để thao tác với tập tin l // Đóng tập tin Trả về EOF nếu cuối tập tin được chạm tới, ngược lại l trả về 0. } => mở tập tin để ghi => nếu tập tin đã tồn tại rồi thì tập tin sẽ bị xóa và một tập tin mới được tạo ra 10 12
- Di chuyển con trỏ tập tin về đầu tập tin - Hàm rewind() Ghi dữ liệu lên tập tin văn bản (1) Cú pháp: Hàm putc() l l void rewind(FILE *f) int putc(int c, FILE *f) Ý nghĩa: l Được dùng để ghi một ký tự lên một tập tin văn bản l Làm cho con trỏ quay về đầu tập tin như khi mở nó l đang được mở (liên kết với con trỏ f) để làm việc c chứa mã Ascii của ký tự l Hàm này trả về EOF nếu gặp lỗi l 13 15 Truy cập tập tin văn bản Ghi dữ liệu lên tập tin văn bản (2) Ghi dữ liệu lên tập tin văn bản Hàm fputs() l l Đọc dữ liệu từ tập tin văn bản int fputs(const char *buffer, FILE *f) l Được dùng để ghi một chuỗi ký tự chứa trong vùng l đệm lên tập tin văn bản Hàm này trả về giá trị 0 nếu buffer chứa chuỗi rỗng và l trả về EOF nếu gặp lỗi 14 16
- Ghi dữ liệu lên tập tin văn bản (3) Đọc dữ liệu từ tập tin văn bản (1) Ví dụ: Viết chương trình ghi chuỗi ký tự lên tập tin văn bản l Hàm getc() l D:\\Baihat.txt int getc(FILE *f) Được dùng để đọc dữ liệu từ tập tin văn bản đang được mở l để làm việc (liên kết với f) Hàm này trả về mã Ascii của một ký tự được đọc (kể cả l EOF) 17 19 Ghi dữ liệu lên tập tin văn bản (3) Đọc dữ liệu từ tập tin văn bản (2) Hàm fgets() l Hàm fprintf() l char *fgets(char *buffer, int n, FILE *f) fprintf(FILE *f, const char *format, varexpr) Được dùng để đọc 1 chuỗi ký tự từ tập tin văn bản đang được mở l Được dùng để ghi dữ liệu có định dạng lên t ập tin văn bản. (liên kết với con trỏ f) l Đọc cho đến khi đủ n ký tự hoặc gặp ký tự xuống dòng ‘\n’ (ký tự format: chuỗi định dạng (giống với các định dạng của hàm l l này cũng được đưa vào chuỗi kết quả) hay gặp ký tự kết thúc printf()) EOF (ký tự này không được đưa vào chuỗi kết quả) varexpr: danh sách các biểu thức, mỗi biểu thức cách nhau l buffer: chỉ đến cùng nhớ đủ lớn chứa các ký tự nhận được l dấu phẩy (,) Ký tự NULL (‘\0’) tự động được thêm vào cuối chuỗi kết quả lưu l trong vùng đệm Hàm trả về địa chỉ đầu tiên của vùng đệm khi không gặp lỗi và l chưa gặp ký tự kết thúc EOF. Ngược lại, hàm trả về giá trị NULL 18 20
- Đọc dữ liệu từ tập tin văn bản (3) Truy cập tập tin nhị phân Ghi dữ liệu lên tập tin nhị phân Hàm fscanf() l l Đọc dữ liệu từ tập tin nhị phân fscanf(FILE *f, const char *format, varlist) l Di chuyển con trỏ tập tin l Được dùng để đọc dữ liệu từ tập tin văn bản vào danh Ví dụ l l sách các biến theo định dạng. format: chuỗi định dạng (giống hàm scanf()) l varlist: danh sách các biến mỗi biến cách nhau dấu l phẩy (,). 21 23 Đọc dữ liệu từ tập tin văn bản (4) Ghi dữ liệu lên tập tin nhị phân Ví dụ: Viết chương trình chép tập tin D:\Baihat.txt ở trên sang l Hàm fwrite() l tập tin D:\Baica.txt. size_t fwrite(const void *ptr, size_t size, size_t n, FILE *f) ptr: con trỏ chỉ đến vùng nhớ chứa thông tin cần ghi lên tập l tin. n: số phần tử sẽ ghi lên tập tin. l size: kích thước của mỗi phần tử. l f: con trỏ tập tin đã được mở. l Giá trị trả về của hàm này là số phần tử được ghi lên tập tin. l Giá trị này bằng n trừ khi xuất hiện lỗi. 22 24
- Ví dụ Đọc dữ liệu từ tập tin nhị phân Viết chương trình ghi lên tập tin CacSo.Dat 3 giá trị số (thực, Hàm fread() l l nguyên, nguyên dài). Sau đó đọc các số từ tập tin vừa ghi và size_t fread(const void *ptr, size_t size, size_t n, FILE *f) hiển thị lên màn hình ptr: con trỏ chỉ đến vùng nhớ sẽ nhận dữ liệu từ tập tin l n: số phần tử được đọc từ tập tin l size: kích thước của mỗi phần tử l f: con trỏ tập tin đã được mở l Giá trị trả về của hàm này là số phần tử đã đọc được từ l tập tin. Giá trị này bằng n hay nhỏ hơn n nếu đã chạm đến cuối tập tin hoặc có lỗi xuất hiện 25 27 Di chuyển con trỏ tập tin Hàm fseek() l int fseek(FILE *f, long offset, int whence) Được dùng để di chuyển con trỏ tập tin đến vị trí chỉ định l f: con trỏ tập tin đang thao tác l offset: số byte cần dịch chuyển con trỏ tập tin kể từ vị trí trước đó. Phần l tử đầu tiên là vị trí 0. whence: vị trí bắt đ ầu đ ể tính offset, ta có thể chọn điểm xuất phát là l Kết quả trả về của hàm là 0 nếu việc di chuyển thành công. Nếu không l thành công, 1 giá trị khác 0 (đó là 1 mã lỗi) được trả về. 26
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình căn bản - Tổng quan
11 p | 1117 | 438
-
Nhập môn Ngôn ngữ lập trình C
243 p | 1126 | 286
-
Tài liệu về Lập trình C căn bản
135 p | 814 | 277
-
Hướng dẫn lập trình với Android part 1
5 p | 342 | 185
-
Giáo trình Lập trình C++ - Lê Phú Hiếu
194 p | 349 | 130
-
Tài liệu lập trình - Giải thích các hàm trong C#
19 p | 882 | 122
-
Tài liệu về môn học PHP
142 p | 288 | 99
-
Lập trình căn bản chương 10
10 p | 248 | 93
-
Lập trình GUI
114 p | 250 | 87
-
Lập trình PowerBuilder
9 p | 514 | 72
-
Lập trình ứng dụng trên Visual Basic
17 p | 185 | 49
-
Tài liệu tham khảo về lập trình hướng đối tượng với .NET & C#.Chương 3 Lớp và đối tượng
42 p | 199 | 36
-
Lập trình trên Android part 4
6 p | 122 | 32
-
Bài giảng Lập trình căn bản: Tuần 16 - Bài toán tìm kiếm, sắp xếp
23 p | 230 | 24
-
Bài giảng Nhập môn lập trình: Các khái niệm cơ bản về lập trình - ThS. Đặng Đình Phương
14 p | 89 | 9
-
Lập trình căn bản - Chương 5: Chương trình con
10 p | 79 | 7
-
Bài giảng Ôn thi tốt nghiệp: Kỹ thuật lập trình - Trần Ngọc Bảo
50 p | 69 | 7
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