Bài giảng Kỹ thuật lập trình - Chương 5: Lập trình tập tin

pdf 11 trang cucquyet12 5320
Bạn đang xem tài liệu "Bài giảng Kỹ thuật lập trình - Chương 5: Lập trình tập tin", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_chuong_5_lap_trinh_tap_tin.pdf

Nội dung text: Bài giảng Kỹ thuật lập trình - Chương 5: Lập trình tập tin

  1. Chương 5: LẬP TRÌNH TẬP TIN 1. Tổng quan về lập trình trên tập tin 2. Các thao tác trên tập tin văn bản a. Tạo tập tin văn bản b. Mở tập tin văn bản c. Thêm dữ liệu vào tập tin văn bản 3. Các thao tác trên tập tin nhị phân Tạo / Mở / Thêm 4. Xử lý tập tin gồm nhiều mẩu tin a. Tạo / Mở tập tin gồm các mẩu tin b. Thêm mẩu tin vào tập tin có sẵn c. Thao tác đọc ghi phức hợp
  2. 1.Tổng quan về lập trình trên tập tin a. Giới thiệu – Trong lập trình, chúng ta không chỉ giải quyết bài toán mà còn phải thực hiện một số thao tác khác với dữ liệu như đưa dữ liệu từ bộ nhớ ngoài vào, lưu dữ liệu ra bộ nhớ ngoài – Như vậy, một số thao tác cần thực hiện khi giao tiếp với bộ nhớ ngoài như mở, đóng đối với tập tin, đọc, ghi, sửa, lưu dữ liệu. – Theo cấu tạo của bộ nhớ ngoài, (cấu tạo đĩa, sector), các thao tác ghi, xóa chỉnh sửa dẫn tới có thể phải thay đổi, di dời một số bye. Ngoài việc cấu trúc tập tin tổ chức tự động, người lập trình cũng cần can thiệp và định vị vị trí để lưu, sửa – Lập trình tập tin ta dùng biến con trỏ FILE * để tham chiếu tới các tập tin – Các loại tập tin lưu dữ liệu bao gồm tập tin văn bản và tập tin nhị phân
  3. 1.Tổng quan về lập trình trên tập tin b. Tập tin văn bản – Là tập tin dùng để lưu các dòng văn bản. – Mỗi tập tin văn bản có thể gồm nhiều dòng và mỗi dòng chúng được ngăn cách bởi $0A. – Kết thúc tập tin là $1A. Trường hợp phía sau ký tự kết thúc mà còn dữ liệu thì dữ liệu đó được coi như rác. – Một số tập tin tạo từ DOS, notepad là các tập tin văn bản c. Tập tin nhị phân – Là các loại tập tin còn lại bao gồm các tập tin có đuôi exe, com, các tập tin hình ảnh, văn bản – Các tập tin đươc tạo ra từ phần mềm nào thì được nhận biết từ phần mềm đó và công ty sở hữu phần mềm có quyền công bố cấu trúc của tập tin hay không.
  4. 2. Các thao tác trên tập tin văn bản a. Tạo tập tin văn bản – Dùng hàm fopen với tùy chọn “wt” để tạo tập tin mới. • Cú pháp: fp = fopen(char *ten, “wt”) trong đó • fp là con trỏ tập tin; • ten là tên và đường dẫn tới địa chỉ cần lưu trên bộ nhớ ngoài; – Hàm fprintf ghi dữ liệu là hằng hay biến bộ nhớ vào tập tin • Cú pháp: fprintf(fp, s) hoặc fprintf (fp, “hằng”) trong đó • fp là con trỏ tập tin • s là biến bộ nhớ – Hàm fclose (fp) cho phép đóng tập tin.
  5. 2. Các thao tác trên tập tin văn bản b. Mở (đọc) tập tin văn bản – Hàm fopen để mở với tùy chọn “rt” – Hàm fgets để đọc dữ liệu từ tập tin vào biến bộ nhớ theo cú pháp: • fgets(bien, sokt, fp) trong đó – bien: là biến bộ nhớ – sokt: là số ký tự tối đa cho mỗi lần đọc – fp: là con trỏ FILE trỏ tới tập tin cần đọc • Chú ý: Hàm feof(fp) cho biết đã kết thúc tập tin được trỏ bởi con trỏ fp hay chưa. – Hàm fclose(fp) để đóng tập tin lại.
  6. 2. Các thao tác trên tập tin văn bản c. Thêm dữ liệu vào tập tin văn bản – Hàm fopen để mở với tùy chọn “at” – Hàm fprintf để ghi dữ liệu từ biến bộ nhớ vào cuối tập tin – Hàm fclose(fp) để đóng tập tin lại
  7. 3.Các thao tác trên tập tin nhị phân a. Tạo tập tin nhị phân – Dùng hàm fopen với tùy chọn “wb” để tạo tập tin mới. • Cú pháp: fp = fopen(char *ten,”wb”) trong đó • fp là con trỏ tập tin; • ten là tên và đường dẫn tới địa chỉ cần lưu trên bộ nhớ ngoài; – Hàm fwrite ghi dữ liệu là hằng hay biến bộ nhớ vào tập tin • Cú pháp: fwrite(bien,size, n, fp) • fp là con trỏ tập tin • bien là biến bộ nhớ kiểu con trỏ • size: là kích thước của biến • n là số lượng – Hàm fclose (fp) cho phép đóng tập tin.
  8. 2. Các thao tác trên tập tin nhị phân b. Mở (đọc) tập tin nhị phân – Hàm fopen để mở với tùy chọn “rb” – Hàm fread để đọc dữ liệu từ tập tin vào biến bộ nhớ theo cú pháp: • fread(bien,size,n,fp) trong đó – bien: là biến bộ nhớ kiểu con trỏ – size là kích thước biến – n là số phần tử – fp: là con trỏ FILE trỏ tới tập tin cần đọc – Hàm fclose(fp) để đóng tập tin lại.
  9. 3. Các thao tác trên tập tin nhị phân c. Thêm dữ liệu vào tập tin nhị phân – Hàm fopen để mở với tùy chọn “ab” – Hàm fwrite để ghi dữ liệu từ biến bộ nhớ vào cuối tập tin – Hàm fclose(fp) để đóng tập tin lại
  10. 4. Xử lý tập tin gồm nhiều mẩu tin a. Tạo / Mở tập tin gồm các mẩu tin – Tạo tập tin gọi hàm fopen(fp, “wb”) – Hàm fwrite để ghi dữ liệu là các cấu trúc từ biến bộ nhớ ra tập tin – Hàm fread để đọc dữ liệu từ bộ nhớ vào biến cấu trúc – Hàm fclose(fp) để đóng tập tin. b. Thêm mẩu tin vào tập tin có sẵn – Để thêm mẩu tin vào tập tin gọi hàm fopen(fp,”ab”)
  11. 4. Xử lý tập tin gồm nhiều mẩu tin c. Thao tác đọc ghi phức hợp Trong trường hợp cần mở tập tin rồi thêm, sửa, lưu thì cần thực hiện các thao tác để xác định vị trí của mẩu tin với các hàm như sau: – Hàm fopen(fp, “r+b”) – Hàm ftell sẽ đánh dấu 1 vị trí của mẩu tin vtri = ftell(pf); – Hàm fseek để đưa đầu đọc/ghi đến mẩu tin thích hợp theo cú pháp: fseek(fp, vtri, SEEK_SET)