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

Bài giảng Tin học cơ sở 4: Tập tin - TS. Vũ Thị Hồng Nhạn

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

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

Bài giảng Tin học cơ sở 4: Tập tin, cung cấp cho người học những kiến thức như sử dụng tập tin (file); mở, đóng file; ghi, đọc file với số nguyên, mảng, chuỗi. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tin học cơ sở 4: Tập tin - TS. Vũ Thị Hồng Nhạn

  1. Tin Học Cơ Sở 4: Tập Tin Vũ Thị Hồng Nhạn (vthnhan@vnu.edu.vn) Human Machine Interaction Lab. Vietnam National Univ., Hanoi
  2. Nội dung S d ng t p tin (file) M , đóng file Ghi, đ c file v i s nguyên, m ng, chu i K t lu n 30/03/2016 Files Page 2
  3. Dòng (streams) Trong nhi u ngôn ng l p trình, vào/ra (input/output) đư c th c hi n trên dòng d li u D li u t n t i trên dòng, ta có th truy c p và s d ng theo nhu c u Ví d stdout: dòng xu t ra chu n stderr: dòng ra xu t ra l i chu n stdin: dòng nh p vào chu n files network sockets (k t n i m ng: network connections) 30/03/2016 Files Page 3
  4. File D li u thư ng đư c lưu trong các file và đây cũng là ngu n d li u cho chương trình D li u nh p vào Xu t d li u • Tr c ti p t bàn phím Chương trình • Màn hình • File trên đĩa (program) • File lưu trên đĩa • Kho d li u trên m ng • Máy in … … 30/03/2016 Files Page 4
  5. Cơ bản về file D li u bi u di n theo cách c a user (vd. S 12) đư c lưu trong các file ASCII Symbol 64 @ Dư i d ng nh phân (1100) 65 A 66 B Trư ng h p lưu tr chu n không có mã hóa 67 C 68 D 69 E Ký t : mã ASCII 70 F …. …. Chu i ký t : chu i mã ASCII c a t ng ký t S : chu i mà ASCII c a ký t s ho c bi u di n nh phân c a s Đ c đi m truy xu t data trong t p tin Tu n t t ng byte 30/03/2016 Files Page 5
  6. Cơ bản về file (tiếp) H đi u hành xác đ nh 1 file b ng “đư ng d n” Đó là m t chu i các ký t Đư ng d n tuy t đ i (absolute path), ví d , C:\\folder1\folder2\dulieu.txt N u file n m trong thư m c hi n hành Ch c n khai báo “tên file” là đ : “dulieu.txt” G i là “đư ng d n tương đ i” (relative path) 30/03/2016 Files Page 6
  7. Phân loại files T p tin văn b n (text file) D li u lưu tr là mã ASCII c a ký t , ký s T p tin nh phân (binary file) D li u lưu tr là d ng nh phân c a ký t 30/03/2016 Files Page 7
  8. Phân loại files (tiếp) Hai lo i lưu tr khác nhau nên vi c truy xu t d liêu…. t file ra bi n c n đ n các hàm thư vi n khác nhau Binary file Dùng đ lưu tr d li u dư i d ng c u trúc có kích thư c c đ nh Khi ghi “bi n có c u trúc” lên file ghi m t kh i có kích thư c c đ nh Và đ c t file ra bi n c u trúc, cũng đ c t file theo kh i có kích thư c c đ nh 30/03/2016 Files Page 8
  9. Vào/ra file Trư c khi có th Đ c & Ghi đư c Ph i m file, dùng hàm thư vi n fopen fopen nh n m t tên ngoài như “data.txt”, th c hi n các th t c v i h đi u hành và tr l i m t “con tr ” Ta dùng con tr này đ đ c và ghi vào file Con tr “tr t i” m t structure FILE FILE *fp 30/03/2016 Files Page 9
  10. fopen FILE *fopen(char *name, char *mode); fopen tr l i con tr tr t i FILE FILE là tên ki u mode có th là r: đ c (read) w: ghi (write) a: thêm vào (append) Có th thêm “b” vào chu i mode, cho phép làm vi c v i file nh phân N u m file không thành công, l nh tr v giá tr NULL 30/03/2016 Files Page 10
  11. Đóng file: fclose int fclose(FILE *fp); 0: đư c tr l i n u thành công EOF (h ng -1) n u th t b i Ki m tra xem file có t n t i không Ví d int FileExist (char *fname){ FILE* fp = fopen(fname, “r”); int kq; kq = (fp==NULL)? 0 : 1; if (fp) fclose(fp); return kq; } 30/03/2016 Files Page 11
  12. Ví dụ 1 Ghi và đ c s nguyên t 1…n int main(){ //Ghi file FILE *fp; fp = fopen("data.txt","wb"); int i,n; if(fp= =NULL){ printf(“Nhập vào số n:"); printf(“Không thể mở tên file.\n"); scanf("%d", &n); exit(0); }else for(i=1;i
  13. fwrite, fread fwrite(&i, sizeof(int), 1, fp) fread(&i, sizeof(int), 1, fp) =1 ho c 0 Ghi thông tin i vào t p tin Đ c thông tin t t p tin lưu vào i Hàm có 4 đ i s Đ c thành công hàm tr v 1, và 0 Đ a ch đ ghi c u trúc (&i) n u k t thúc file Kích thư c c a c u trúc (sizeof(int)) S c u trúc s ghi (1) Con tr tr t i t p tin (fp) size_t fread(void *array, size_t size, size_t count, FILE *fp); size_t fwrite(void *array, size_t size, size_t count, FILE *fp); 30/03/2016 Files Page 13
  14. Ví dụ 2: ghi 1 danh sách nhân viên ra file #define MAX 30 printf(“Nh p vào s nhân viên: "); int main(){ scanf(“%d”,&n); typedef struct{ int manv; //M file đ ghi nhân viên vào file char hoten[28]; }nhanvien; fp=fopen("struct.dat","wb"); if(fp==NULL){ FILE *fp; printf(“không m đư c file!\n"); nhanvien nv[MAX]; char temp[10]; exit(0); int i,n; } 30/03/2016 Files Page 14
  15. Ví dụ 2 (tiếp) //Ghi nhân viên vào file for(i=0; i
  16. Ví dụ 2 (tiếp) (tiếp) //Đọc từ file và in nhân viên ra màn hình fp = fopen("struct.dat","rb"); while( fread(&nv[i], sizeof(nhanvien),1,fp) = =1) printf("%5d %s\n“,nv[i].manv, nv[i].hoten); } fclose(fp); } 30/03/2016 Files Page 16
  17. Kết luận Ý nghĩa c a vi c s d ng t p tin (file) M , đóng file Ghi, đ c file s nguyên, m ng, chu i 30/03/2016 Files Page 17
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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