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ở đó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 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ở tạo mới : tạo mối  
quan hệ quản giữa tập tin  
trên đĩa (đặc trưng bằng tên  
tập tin) với biến trong bộ  
nhớ.  
Tꢅo mới  
(Có rồi : nội dung bꢁ mꢂt)  
Xử : thay đổi nội  
dung tập tin hoặc thêm  
thông tin mới vào tập  
tin.  
Xử lꢊ  
(Phꢆn thông tin quꢀn lꢊ tập tin)  
(Phꢆn nội dung tập 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 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 *<tên biến>  
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  
pdf 11 trang baolam 29/04/2022 7140
Bạn đang xem 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

File đính kèm:

  • pdfbai_giang_nhap_mon_ve_lap_trinh_chuong_9_su_dung_tap_tin_fil.pdf