intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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à

Chia sẻ: Nnmm Nnmm | Ngày: | Loại File: PDF | Số trang:37

54
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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à

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. Đọ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
  15. Đọc dữ liệu từ tập tin văn bản – ví dụ Sưu tầm bởi: www.daihoc.com.vn
  16. #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
  17. #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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2