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 - Chương 1: Các khái niệm cơ bản về lập trình
20 p | 114 | 8
-
Bài giảng Nhập môn lập trình: Chương 2 - Trần Minh Thái
86 p | 107 | 8
-
Bài giảng Nhập môn lập trình: Chương 1 - Trần Minh Thái
58 p | 103 | 7
-
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 | 111 | 5
-
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 1 - TS. Ngô Hữu Dũng
47 p | 80 | 3
-
Bài giảng Nhập môn lập trình: Tổng quan về lập trình - Nguyễn Đình Hưng
21 p | 78 | 3
-
Bài giảng Nhập môn lập trình: Chương giới thiệu - ThS. Nguyễn Đông Hà
9 p | 79 | 3
-
Bài giảng Nhập môn lập trình: Bài 3 - Trần Duy Thanh
16 p | 98 | 3
-
Bài giảng Nhập môn lập trình: Giới thiệu về các cấu trúc điều khiển - Trường ĐH Khoa học tự nhiên TP. HCM
58 p | 5 | 1
-
Bài giảng Nhập môn lập trình: Sử dụng những kiểu dữ liệu cơ sở trong chương trình - Trường ĐH Khoa học tự nhiên TP. HCM
53 p | 1 | 1
-
Bài giảng Nhập môn lập trình: Giới thiệu tổng quan về lập trình - Trường ĐH Khoa học tự nhiên TP. HCM
31 p | 2 | 0
-
Bài giảng Nhập môn lập trình: Hàm và kỹ thuật tổ chức chương trình - Trường ĐH Khoa học tự nhiên TP. HCM
86 p | 1 | 0
-
Bài giảng Nhập môn lập trình: Giới thiệu về thuật toán - Trường ĐH Khoa học tự nhiên TP. HCM
29 p | 0 | 0
-
Bài giảng Nhập môn lập trình: Kỹ thuật cài đặt các thuật toán cơ bản - Trường ĐH Khoa học tự nhiên TP. HCM
37 p | 2 | 0
-
Bài giảng Nhập môn lập trình: Dữ liệu mạng và dữ liệu có cấu trúc - Trường ĐH Khoa học tự nhiên TP. HCM
37 p | 0 | 0
-
Bài giảng Nhập môn lập trình: Lập trình với tập tin văn bản thô - Trường ĐH Khoa học tự nhiên TP. HCM
38 p | 7 | 0
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