Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File)

Learning outcomes

L.O.7.1 – Khai báo được kiểu tập tin.

L.O.7.2 – Giải thích được các kiểu mở và đóng tập tin.

L.O.7.3 – Giải thích được nguyên tắc làm việc với tập tin.

L.O.7.4 – Hiện thực được bằng C để lấy dữ liệu từ tập tin

hay để ghi dữ liệu vào tập tin.

L.O.7.5 – Sử dụng được C để giải quyết bài toán trong thực

tế.

L.O.7.6 – Sử dụng được macro.

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 1

Trang 1

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 2

Trang 2

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 3

Trang 3

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 4

Trang 4

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 5

Trang 5

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 6

Trang 6

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 7

Trang 7

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 8

Trang 8

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 9

Trang 9

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File) trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 12 trang xuanhieu 8620
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File)

Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (File)
 Chương 9 
 Sử dụng tập tin (file) 
 Presenter: 
Nhập môn về lập trình (C9) Slide 1 
 Learning outcomes 
 L.O.7.1 – Khai báo được kiểu tập tin. 
 L.O.7.2 – Giải thích được các kiểu mở và đóng tập tin. 
 L.O.7.3 – Giải thích được nguyên tắc làm việc với tập tin. 
 L.O.7.4 – Hiện thực được bằng C để lấy dữ liệu từ tập tin 
 hay để ghi dữ liệu vào tập tin. 
 L.O.7.5 – Sử dụng được C để giải quyết bài toán trong thực 
 tế. 
 L.O.7.6 – Sử dụng được macro. 
Nhập môn về lập trình (C9) Slide 2 
 Tập tin (file) 
 Khái niệm chung 
  Tập tin (file) trên đĩa thường chia ra các loại chính: 
 • Văn bản: lưu thông tin theo dạng chuỗi ký tự theo mã quy định 
 (ISO8859-1/ASCII, unicode). Có thể xem bằng các chương trình 
 soạn thảo văn bản như notepad, wordpad, MSword, ... 
 • Nhị phân: thông tin lưu dưới dạng chuỗi byte nhị phân (binary). 
 Dùng để lưu trữ chương trình mã máy, dữ liệu dạng nén, dữ liệu 
 mã hoá, ... 
 • Cấu trúc/mẫu tin: thông tin lưu theo khối có cấu trúc giống nhau 
 (mẫu tin). Thường dùng trong quản lý hồ sơ, dữ liệu có số lượng 
 lớn. 
 • Định dạng phần mềm chuyên dụng: thông tin được mã hoá do 
 hãng phần mềm quy định. Muốn đọc được thông tin, cần thực 
 hiện giải mã (chìa khoá giải mã thường phải mua từ hãng phần 
 mềm). 
Nhập môn về lập trình (C9) Slide 3 
 Tập tin (file) 
 Dưới góc nhìn của ngôn ngữ C 
  Đối với C, tập tin được nhìn theo dạng dữ liệu thô: 
 • Chuỗi ký tự (dùng cho tập tin văn bản). 
 • Chuỗi byte (dùng cho tập tin nhị phân hoặc cấu trúc). 
  Ngoài ra, tập tin được lưu trữ trên cây thư mục chịu sự 
 quản lý của Hệ điều hành nên mọi vấn đề có liên quan 
 đến tập tin đều phải tuân theo thủ tục, qui trình qui định 
 bởi Hệ điều hành. 
  C hổ trợ các hàm thư viện giúp người lập trình có thể tiếp 
 cận, “xin phép” Hệ điều hành để có thể làm việc với tập tin 
 theo định dạng mong muốn. 
  Người lập trình phải tự quản lý về mặt ý nghĩa của thông 
 tin trên tập tin. 
Nhập môn về lập trình (C9) Slide 4 
 Tập tin 
 Thủ tục / Quy trình 
 (Chưa có : báo lỗi) 
 Mở Mở và tạo mới : tạo mối 
 Tạo mới quan hệ quản lý giữa tập tin 
 trên đĩa (đặc trưng bằng tên 
 (Có rồi : nội dung bị mất) 
 tập tin) với biến trong bộ 
 nhớ. 
 Xử lý Xử lý : thay đổi nội 
 dung tập tin hoặc thêm 
 (Phần thông tin quản lý tập tin) thông tin mới vào tập 
 (Phần nội dung tập tin) tin. 
 [Dời con trỏ tập tin], [đọc], [ghi] 
 Đóng 
 Đóng : Cắt đứt quan hệ giữa 
 tập tin trên đĩa và chương 
 trình. 
Nhập môn về lập trình (C9) Slide 5 
 Tập tin (file) 
 Kiểu tập tin (FILE *) 
  Biến trong chương trình dùng để gắn kết với tập tin trên 
 đĩa ở bước mở/tạo file phải được định nghĩa với kiểu đặc 
 biệt như cú pháp sau: 
 FILE * 
 Ví dụ: FILE *stream; 
 FILE *fileptr; 
  Kiểu FILE là kiểu cấu trúc do C định nghĩa sẳn. Các 
 thành phần của nó được dùng để quản lý tập tin gắn kết 
 với biến kiểu FILE * (các thông tin cần thiết để làm việc 
 với tập tin như: tên, chiều dài byte, ngày/giờ tạo tập tin, 
 ngày/giờ cập nhật gần nhất, . . . ). 
Nhập môn về lập trình (C9) Slide 6 
 Tập tin (file) 
 Mở / tạo tập tin 
  Hàm thư viện mở/tạo tập tin: 
 FILE *fopen( const char *filename, const char *mode ); 
 trong đó: 
 • filename là tên tập tin trên đĩa 
 Ví dụ: “C:\MSSV_Vc\”ThapHN.cpp”, “Hamdq.h” 
 • mode qui định chế độ mở/tạo tập tin 
  “r” : mở để đọc. 
  “w” : mở để ghi. 
  “a” : mở để thêm vào. 
  “r+”, mở để vừa đọc vừa ghi, tập tin phải có rồi. 
  “w+” : tạo mới (hoặc xoá nội dung cũ) để vừa đọc vừa ghi. 
  “a+” : mở/tạo mới để vừa đọc vừa thêm vào. 
  “t” : thêm vào cuối để chọn tập tin văn bản. 
  “b” :thêm vào cuối để chọn tập tin nhị phân. 
Nhập môn về lập trình (C9) Slide 7 
 Tập tin (file) 
 Ví dụ 1 
Nhập môn về lập trình (C9) Slide 8 
 Tập tin (file) 
 Hàm fprintf( ) 
  Hàm thư viện ghi tập tin theo định dạng: 
 int fprintf( FILE *stream, const char *format [, argument ]... ); 
  Việc sử dụng hàm fprintf( ) tương tự như hàm printf( ), 
 chỉ có khác ở chỗ những gì in ra màn hình sẽ được ghi 
 lên tập tin stream. 
 Ví dụ: fprintf(fptr,"%d%s%.0g\n",10,"!= ",gt(10)); 
 fprintf(stream,"%s%d\n","S= ",x*2+3); 
Nhập môn về lập trình (C9) Slide 9 
 Tập tin (file) 
 Hàm fscanf_s( ) 
  Hàm thư viện đọc dữ liệu từ tập tin theo định dạng: 
 int fscanf_s( FILE *stream, const char *format [, argument ]... ); 
  Việc sử dụng hàm fscanf_s( ) tương tự như hàm 
 scanf_s( ), chỉ có khác ở chỗ những gì lẻ ra nhập từ bàn 
 phím sẽ được đọc vào từ tập tin stream. 
 Ví dụ: fscanf_s(i_file,"%d",&n); 
 fscanf_s(stream,"%f",&(sv1->diem_btl); 
Nhập môn về lập trình (C9) Slide 10 
 Tập tin (file) 
 Hàm tham khảo thêm 
  Hàm fread(): 
 size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); 
  Hàm fwrite(): 
 size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); 
  Hàm fputc(): 
 int fputc( int c, FILE *stream ); 
  Hàm fgetc(): 
 int fgetc( FILE *stream ); 
  Hàm feof(): 
 int feof( FILE *stream ); 
  . . . 
Nhập môn về lập trình (C9) Slide 11 
  int fseek (FILE *fp, long sb, int xp); 
  fseek( con trờ tới file, n*sizeof(Lophoc) ,SEEK_SET); 
 fp là con trỏ tệp. 
 sb là số byte cần di chuyển. 
 xp cho biết vị trí xuất phát mà việc dịch chuyển được bắt đầu từ đó. 
 xp có thể nhận các giá trị sau : 
 xp=SEEK_SET hay 0 : Xuất phát từ đầu tệp. 
 xp=SEEK_CUR hay 1: Xuất phát từ vị trí hiện tại của con trỏ chỉ vị. 
 xp=SEEK_END hay 2 : Xuất phát từ cuối tệp. 
Nhập môn về lập trình (C9) Slide 12 

File đính kèm:

  • pdfbai_giang_nhap_mon_ve_lap_trinh_chuong_9_su_dung_tap_tin_fil.pdf