Bài giảng Tin học đại cương - Bài 8: Tệp dữ liệu

60 62 0
Bài giảng Tin học đại cương - Bài 8: Tệp dữ liệu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Tin học đại cương - Bài 8: Tệp dữ liệu trình bày khái niệm và phân loại tệp; các thao tác với tệp; một số bài tập vận dụng. Mời các bạn cùng tham khảo bài giảng để nắm chi tiết nội dung kiến thức.

VIỆN  CÔNG NGHỆ THÔNG  TIN VÀ TRUYỀN  THÔNG S CHOOL OF INFORMATION  & COMMUNICATION TECHNOLOGY TIN HỌC ĐẠI CƯƠNG PHẦN 2: LẬP TRÌNH BẰNG NGƠN NGỮ C BÀI 8: TỆP DỮ LIỆU TỆP DỮ LIỆU 8.1 Khái niệm phân loại tệp 8.2 Các thao tác với tệp      8.2.1 Khai báo 8.2.2 Mở tệp 8.2.3 Truy nhập tệp văn 8.2.4 Truy nhập tệp nhị phân 8.2.5 Đóng tệp 8.3 Bài tập TỆP DỮ LIỆU 8.1 Khái niệm phân loại tệp 8.2 Các thao tác với tệp      8.2.1 Khai báo 8.2.2 Mở tệp 8.2.3 Truy nhập tệp văn 8.2.4 Truy nhập tệp nhị phân 8.2.5 Đóng tệp 8.3 Bài tập 8.1.1 Khái niệm Khái niệm tệp   Tệp dữ liệu (File) là một tập hợp các dữ liệu  có liên quan với nhau và có cùng kiểu dữ liệu.  Tệp được lưu trữ trên các thiết bị nhớ ngồi  (đĩa mềm, đĩa cứng, CD­ROM…) với một tên  nào đó để phân biệt với nhau Mơ hình lưu trữ liệu Bit – liệu nhỏ (0 1) Byte – bits - Dùng để lưu trữ ký tự, số nguyên byte Trường (Field) – tập byte liệu Bản ghi (Record) – tập trường Tệp (file) - tập ghi Cơ sở liệu (database) - tập tệp Mơ hình lưu trữ liệu 8.1.2. Phân loại tệp Dựa theo bản chất dữ liệu của tệp, người  ta chia tệp thành 2 loại:   Tệp văn bản  Tệp nhị phân 8.1.2 Phân loại tệp (tiếp) Tệp văn bản (text file):  Các phần tử của nó là các kí tự gồm: Chữ cái Chữ số Các dấu câu Các dấu cách  Một số kí tự điều khiển    CR – Carriage Return – có mã ASCII là 13, để về đầu  dòng LF – Line Feed – có mã ASCII là 10, để xuống dòng mới … 8.1.2 Phân loại tệp (tiếp) Tệp nhị phân (binary file):    Các phần tử của nó là các số nhị phân 0 và 1  mã hóa thơng tin.  Thơng tin được mã hóa bởi các bit nhị phân  có thể là số ngun, số thực, các cấu trúc dữ  liệu…  Nếu thơng tin được mã hóa là kí tự thì khi đó  tệp nhị phân trở thành tệp văn bản. Vì vậy  tệp văn bản là một trường hợp riêng của tệp  nhị phân 8.1.3. Vai trò của tệp Khi chương trình kết thúc hoặc khi tắt máy  thì các thơng tin trong bộ nhớ chính (RAM)  khơng còn.  Muốn lưu trữ dữ liệu lâu dài để sử dụng  cho những lần sau ta phải lưu dữ liệu lên  tệp, tức là để dữ liệu nằm ở bộ nhớ ngồi.   Tệp là phương tiện dùng để cất giữ dữ  liệu lâu dài 10 8.2.4 Truy nhập tệp nhị phân Đọc liệu tệp Ghi liệu tệp Dịch chuyển trỏ tệp 46 a Đọc liệu tệp nhị phân Cú pháp: int fread(void *đia_chi_bien, int so_byte, int so_muc, FILE *con_tro_tep); Hàm fread() đọc từ tệp một khối dữ liệu kích  thước = so_muc*so_byte bytes, sau đó ghi khối  dữ liệu đó lên vùng nhớ có địa chỉ là  dia_chi_bien Kết quả trả về:   Nếu thành cơng  Trả về một giá trị ngun là số  mục (khơng phải số bytes) đọc được từ tệp Ngược lại  Trả về giá trị 0 47 b Ghi liệu tệp nhị phân Cú pháp: int fwrite(void *dia_chi_bien, int so_byte, int so_muc, FILE* ); Hàm fwrite() sẽ đọc từ bộ nhớ một khối dữ  liệu có địa chỉ bắt đầu là dia_chi_bien và có  kích thước là so_byte*so_muc bytes, sau đó  nó ghi khối dữ liệu này lên tệp Kết quả trả về: Nếu thành cơng  Trả về một giá trị ngun là số  mục (khơng phải số bytes) đã ghi lên tệp Ngược lại  Trả về giá trị 0  48 c Dịch chuyển trỏ tệp nhị phân Tương tự tệp văn bản, ta dùng hàm fseek() rewind() để dịch chuyển trỏ tệp tệp nhị phân Hàm fseek() dùng với tệp nhị phân khơng phải lưu ý dùng với tệp văn Nhận xét:  Các hàm trong các cặp hàm fread() – fwrite(), fscanf()  – fprintf(), fputs() – fgets(), và getc() – putc() có chức  năng đối ngẫu nhau 49 TỆP DỮ LIỆU 8.1 Khái niệm phân loại tệp 8.2 Các thao tác với tệp      8.2.1 Khai báo 8.2.2 Mở tệp 8.2.3 Truy nhập tệp văn 8.2.4 Truy nhập tệp nhị phân 8.2.5 Đóng tệp 8.3 Bài tập 50 8.2.5 Đóng tệp Đóng tệp đảm bảo thay đổi liệu lưu lại tệp Để đóng tệp ta dùng hàm fclose() có cú pháp khai báo: int fclose(FILE* ); Kết quả trả về:   Nếu thành cơng  Trả về giá trị 0 Ngược lại  Trả về giá trị EOF 51 Ví dụ tổng hợp #include #include #include void main() { FILE* fptr1, fptr2; //Khai bao bien tro tep int i; float f, a[100]; char file_name_2[20];//Xau ki tu chua ten tep thu clrscr(); // Mo tep c:\float.dat de ghi len dó 100 so thuc if((fptr1 = fopen("c:\\float.dat","wb"))==NULL) { printf("\n Khong mo duoc file c:\\float.dat"); printf("\n An phim bat ki de ket thuc!"); exit(1); } 52 Ví dụ tổng hợp (tiếp) //Tao 100 so thuc ghi vào mang a[100] for(i=0;i

Ngày đăng: 29/05/2020, 15:27

Từ khóa liên quan

Mục lục

  • TIN HỌC ĐẠI CƯƠNG PHẦN 2: LẬP TRÌNH BẰNG NGÔN NGỮ C BÀI 8: TỆP DỮ LIỆU

  • TỆP DỮ LIỆU

  • Slide 3

  • 8.1.1. Khái niệm

  • Mô hình lưu trữ dữ liệu

  • Slide 6

  • 8.1.2. Phân loại tệp

  • 8.1.2. Phân loại tệp (tiếp)

  • Slide 9

  • 8.1.3. Vai trò của tệp

  • 8.1.4. Phân biệt tệp và mảng

  • 8.1.5. Tổ chức của tệp

  • 8.1.6. Con trỏ tệp

  • Slide 14

  • 8.2. Các thao tác với tệp

  • Slide 16

  • 8.2.1. Khai báo tệp

  • Slide 18

  • 8.2.2. Mở tệp

  • 8.2.2. Mở tệp (tiếp)

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan