Bài giảng Nhập môn lập trình: Lập trình với tập tin - ThS. Nguyễn Đông Hà
lượt xem 4
download
Dữ liệu của chương trình được lưu trữ trong bộ nhớ chính (các biến bộ nhớ), không được lưu trữ cho lần chạy kế tiếp của chương trình. Mục đích chính của việc lập trình với tập tin là nhằm để lưu trữ dữ liệu vào bộ nhớ phụ truy xuất trở lại khi cần thiết. Trong bài giảng này chúng ta sẽ tập trung vào các kiến thức về lập trình với tập tin, mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Nhập môn lập trình: Lập trình với tập tin - ThS. Nguyễn Đông Hà
- Lập trình với tập tin Nguyễn Đông Hà Khoa CNTT – ĐH KHTN Sưu tầm bởi: www.daihoc.com.vn
- Lập trình với tập tin Dữ liệu của chương trình được lưu trữ trong bộ nhớ chính (các biến bộ nhớ), không được lưu trữ cho lần chạy kế tiếp của chương trình Mục đích chính của việc lập trình với tập tin là nhằm để lưu trữ dữ liệu vào bộ nhớ phụ và truy xuất trở lại khi cần thiết Sưu tầm bởi: www.daihoc.com.vn
- Phân loại tập tin Tập tin văn bản có thể xem nội dung bằng lệnh type của hệ điều hành DOS được soạn thảo bằng các chương trình soạn thảo văn bản đơn giản như Notepad của Windows... Tập tin nhị phân không có dạng văn bản ASCII ví dụ: tập tin mã thực thi trên hệ điều hành (.exe,.com), tập tin văn bản phức hợp (.doc), tập tin hình ảnh (.jpg) Sưu tầm bởi: www.daihoc.com.vn
- Kỹ thuật lập trình tập tin Cácthao tác với tập tin luôn gồm 3 bước chính sau đây: Mở tập tin để chuẩn bị làm việc Đọc và ghi dữ liệu Đóng tập tin Sưu tầm bởi: www.daihoc.com.vn
- Mở tập tin Dùng hàm fopen để mở tập tin theo cú pháp sau: FILE *fopen(const char *ten_tap_tin, const char *tuy_chon); Ví dụ: /* Mo tap tin ten la text.txt de ghi */ fopen( “text.txt” , ”wt” ); Sưu tầm bởi: www.daihoc.com.vn
- Mở tập tin Các tùy chọn có thể có: r mở file để đọc, nếu file ko tồn tại, fopen trả về NULL w mở file để ghi, nếu file ko tồn tại, tạo file mới, nếu đã tồn tại, ghi đè lên file cũ ko cần hỏi a mở file để thêm vào phía sau file đã tồn tại r+ mở file để đọc viết, ghi đè lên phần dữ liệu đã có w+ mở file để đọc viết, xóa hoàn toàn phần dữ liệu cũ a+ mở file để đọc và thêm vào phía sau file cũ Sưu tầm bởi: www.daihoc.com.vn
- Mở tập tin Mặc định mở tập tin là tập tin văn bản, để mở tập tin nhị phân, phần tùy chọn phải thêm vào ký tự “b”, tức là “wb”, “rb”.. (b: binary) Có thể thêm ký tự “t” vào phần tùy chọn cho tập tin văn bản, mặc dù không ghi cũng được. (t: text) Sưu tầm bởi: www.daihoc.com.vn
- Mở tập tin Hàm fopen() trả về NULL nếu xảy ra lỗi: Sử dụng tên tập tin không đúng quy tắc Mở tập tin chưa sẵn sàng (đĩa chưa format, chưa đóng ổ đĩa) Mở tập tin không tồn tại Bất cứ khi nào sử dụng hàm fopen, luôn phải kiểm tra kết quả trả về xem có thực hiện thành công hay không Sưu tầm bởi: www.daihoc.com.vn
- Các hàm đọc, ghi Đọc các giá trị số (số nguyên, thực, 1 ký tự..) int fscanf(FILE *tap_tin, const char * format [ , argument , ...] ); Ví d ụ /* doc mot so nguyen dua vao bien n tu tap tin duoc dai dien boi con tro ten la fp */ fscanf(fp ,”%d” , &n); Sưu tầm bởi: www.daihoc.com.vn
- Các hàm đọc, ghi Đọc các giá trị chuỗi ký tự char * fgets (char * chuoi, int sokytu , FILE * tap_tin); Ví d ụ /* Doc mot chuoi ky tu chua toi da 20 ky tu tu tap tin duoc dai dien boi con tro fp, dua vao bien chuoi ky tu ten la dong */ fgets(dong,20,fp); Sưu tầm bởi: www.daihoc.com.vn
- Các hàm đọc, ghi Ghi int fprintf (FILE * tap_tin, const char * ma[ , bien , ...] ); Ví d ụ /* ghi mot so nguyen n ten tap tin duoc dai dien boi con tro ten la fp */ fprintf(fp,"%d",n); Sưu tầm bởi: www.daihoc.com.vn
- Tạo tập tin văn bản mới Gồm 3 bước: Mở tập tin bằng hàm fopen() với tùy chọn “wt” Ghi dữ liệu lên tập tin bằng hàm fprintf() Đóng tập tin bằng hàm fclose() Sưu tầm bởi: www.daihoc.com.vn
- Tạo tập tin văn bản mới – ví dụ void TaoTapTin() { FILE* fp; int x = 10; fp = fopen(“test.txt”,”wt”); if(fp != NULL) { fprintf(fp, “Chao cac ban !\n”); fprintf(fp,"x = %d", x); fclose(fp); } else printf(“Khong the tao tap tin”); } Sưu tầm bởi: www.daihoc.com.vn
- Đọc dữ liệu từ tập tin văn bản có sẵn Gồm 3 bước: Mở tập tin bằng hàm fopen() với tùy chọn “rt” Gọi hàm fscanf() hay fgets() để đọc dữ liệu từ tập tin vào biến bộ nhớ Đóng tập tin bằng hàm fclose() Dùng hàm fscanf để đọc số nguyên, số thực hay ký tự; dùng hàm fgets để đọc nguyên một dòng của tập tin Để kiểm tra đã đến cuối tập tin hay chưa, dùng hàm feof Sưu tầm bởi: www.daihoc.com.vn
- Đọc dữ liệu từ tập tin văn bản – ví dụ Sưu tầm bởi: www.daihoc.com.vn
- #define MAXCHAR 255 void DocTapTin() { FILE* fp; char dong[MAXCHAR+1]; fp = fopen(“test.txt”,”rt”); if(fp != NULL) { while(!feof(fp)) /* chua cuoi tt*/ { if(fgets(dong,MAXCHAR,fp)!=NULL) printf(“%s”,dong); } fclose(fp); } else printf(“Khong the mo tap tin”); } Sưu tầm bởi: www.daihoc.com.vn
- #define MAXCHAR 255 void DocTapTin() { FILE* fp; char dong[MAXCHAR+1]; fp = fopen(“test.txt”,”rt”); if(fp != NULL) { while(!feof(fp)) /* chua cuoi tt*/ { if(fgets(dong,MAXCHAR,fp)!=NULL) printf(“%s”,dong); } fclose(fp); } else printf(“Khong the mo tap tin”); } Sưu tầm bởi: www.daihoc.com.vn
- Thêm dữ liệu vào cuối tập tin văn bản có sẵn Gồm 3 bước: Mở tập tin bằng hàm fopen() với tùy chọn “at” Ghi dữ liệu thêm vào cuối tập tin bằng hàm fprintf() Đóng tập tin bằng hàm fclose() Sưu tầm bởi: www.daihoc.com.vn
- Ví dụ ghép 2 tập tin /* Copy du lieu tu tap tin 2 vao phia sau tap tin 1, tra ve 1 neu thanh cong, tra ve 0 neu that bai */ int GhepHaiTapTin(char *tap_tin_1, char *tap_tin_2) { FILE *fp1,*fp2; char dong[MAXCHAR +1]; fp1 = fopen(tap_tin_1,"at"); fp2 = fopen(tap_tin_2,"rt"); if(fp1==NULL || fp2==NULL) { printf("Loi mo tap tin\n"); return 0; } Sưu tầm bởi: www.daihoc.com.vn
- Ví dụ ghép 2 tập tin fprintf(fp1,"\n"); while(!(feof(fp2))) { if(fgets(dong, MAXCHAR, fp2) !=NULL) fprintf(fp1,dong); } fclose(fp1); fclose(fp2); return 1; } Sưu tầm bởi: www.daihoc.com.vn
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Nhập môn Lập trình: Phần 1
43 p | 132 | 21
-
Bài giảng Nhập môn lập trình: Phần 2 - Cấu trúc điều khiển
23 p | 112 | 15
-
Bài giảng Nhập môn lập trình C: Chương 3 - Trần Thị Kim Chi
76 p | 104 | 11
-
Bài giảng Nhập môn lập trình Java: Bài 4 - Võ Tấn Dũng
74 p | 68 | 8
-
Bài giảng Nhập môn lập trình Java: Bài 10 - Võ Tấn Dũng
46 p | 66 | 8
-
Bài giảng Nhập môn lập trình: Chương 2 - Trần Minh Thái
86 p | 106 | 8
-
Bài giảng Nhập môn lập trình: Chương 1 - Trần Minh Thái
58 p | 102 | 7
-
Bài giảng Nhập môn lập trình: Bài 5 - Cấu trúc lặp
58 p | 62 | 6
-
Bài giảng Nhập môn lập trình khoa học dữ liệu: Bài 2 - Trương Xuân Nam
26 p | 45 | 6
-
Bài giảng Nhập môn lập trình: Mở đầu - Trần Phước Tuấn
22 p | 91 | 6
-
Bài giảng Nhập môn lập trình: Chương 3 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM
79 p | 17 | 6
-
Bài giảng Nhập môn lập trình: Bài 1 - Trần Duy Thanh
70 p | 188 | 5
-
Bài giảng Nhập môn lập trình - Bài 2: Giới thiệu ngôn ngữ lập trình C
18 p | 108 | 5
-
Bài giảng Nhập môn lập trình - Bài 5: Câu lệnh lặp
49 p | 99 | 4
-
Bài giảng Nhập môn lập trình - Bài 1: Các khái niệm cơ bản về lập trình
21 p | 127 | 4
-
Bài giảng Nhập môn lập trình: Bài 1 - TS. Ngô Hữu Dũng
47 p | 79 | 3
-
Bài giảng Nhập môn lập trình: Bài 2 - TS. Ngô Hữu Dũng
53 p | 63 | 3
-
Bài giảng Nhập môn lập trình: Bài 3 - Trần Duy Thanh
16 p | 94 | 3
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