1. Trang chủ
  2. » Công Nghệ Thông Tin

Kỹ thuật lập trình - File pdf

5 480 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 165,46 KB

Nội dung

Chương 6Tệp tin file Đặt vấn đề Các CTDL đã khảo sát có cùng 1 đặc tính đó là được lưu trữ ở bộ nhớ trong RAM, do đó dữ liệu sẽ mất khi kết thúc chương trình.. Trên bộ nhớ ngoài dữ liệu

Trang 1

Chương 6

Tệp tin (file)

Đặt vấn đề

Các CTDL đã khảo sát có cùng 1 đặc tính đó là được lưu trữ ở bộ nhớ trong (RAM), do đó dữ liệu sẽ mất khi kết thúc chương trình.

Cần có một cách tổ chức lưu trữ dữ liệu lâu dài, đó là trên bộ nhớ ngoài (disk, tape, ).

Trên bộ nhớ ngoài dữ liệu được tổ chức thành các tệp tin (file).

Đặt vấn đề (tt)

Logic View

Tệp và con trỏ tệp

 Vì tệp là CTDL trên bộ nhớ ngoài (BNN) nên với các thiết bị khác nhau có cách tổ chức lưu trữ vật lý khác nhau Điều này gây trở ngại cho chương trình khi muốn truy xuất tệp (vì nó cần phải biết nó đang làm việc với thiết bị gì, theo cách như thế nào )

 Đểkhắc phục, C xây dựng đối tượng “dòng” (stream) Chương trình chỉ làm việc với các dòng, phần còn lại (tương tác giữa “dòng” với file vật lý được xử lý sẵn) Với cách làm như vậy việc truy xuất file trở nên độc lập với các thiết bị vật lý

 Đểquản lý các dòng làm việc với file C cung cấp một con trỏ kiểu FILE trỏ đến vùng đệm dữ liệu (buffer) của “dòng”

Trang 2

Tệp và con trỏ tệp (tt)

Khai báo con trỏ file:

Ví dụ:

FILE *<tên con trỏ>;

FILE *f, *g;//g và f là 2 con trỏ FILE

Tệp và con trỏ tệp (tt)

Qui ước:

- Khi mở file để đọc dữ liệu, con trỏ file trỏ đến phần tử đầu tiên của file (phần tử thứ 0).

- Mỗi file có một điểm kết thúc file EOF (end of file).

- Sau mỗi thao tác truy xuất dữ liệu, con trỏ file

tự động dịch chuyển đến phần tử kế tiếp.

EOF f

File

Phần loại file

 Ởmức độ vật lý mọi file đều như nhau, đều là dãy các

byte trên bộ nhớ ngoài

 Để dễ thao tác, ở mức độ logic C chia ra 2 loại file:

văn bản và nhị phân

 File văn bản (text):

- dữ liệu được lưu ở dạng mã ASCII

- dấu hiệu kết thúc file EOF có mã là 26

 File nhị phân (binary):

- dữ liệu được lưu ở dạng các byte nhị phân (không

quan tâm đến kiểu dữ liệu mà các byte đó biểu diễn)

- dấu hiệu kết thúc file EOF = -1

Truy xuất file

Các hàm dùng chung cho cả hai loại file:

Hàm mở file:

Ví dụ:

Trang 3

Truy xuất file (tt)

Hàm đóng file:

Hàm kiểm tra kết thúc file:

Truy xuất file (tt)

Hàm xóa file:

Đọc dữ liệu:

Ghi dữ liệu:

Truy xuất file (tt)

#include <stdio.h>

#include <conio.h>

void docFile()

{

FILE *f;

char ch;

if((f=fopen("d:\\baigiang\\oop\\dulieu.txt","rt"))==NULL) {

printf("\nloi mo file");

return;

} while((ch=fgetc(f))!=EOF)

printf("%c",ch);

fclose(f);

}

void main()

{

docFile();

}

Ví dụ 1

Truy xuất file văn bản

Đối với file văn bản có các cách truy xuất sau:

- T/X có định dạng: fprintf, fscanf.

- T/X chuỗi ký tự: fgets, fputs (tự đọc)

Hàm fprintf:

Trang 4

Truy xuất file văn bản (tt)

Ví dụ:

Hàm fscanf:

Truy xuất file văn bản (tt)

void docfile(int a[], int *n) {

FILE *f;

f=fopen("D:\\dulieu.txt","rt");

if(!f) {

printf("\nkhong mo duoc file");getch(); return;

}

*n=0;

while(fscanf(f,"%d",&a[*n])!=EOF)++(*n); fclose(f);

}

Hàm đọc dữ liệu từ file “dulieu.txt” vào mảng a

Truy xuất file nhị phân

Đối với file nhị phân có các cặp hàm t/x

sau:

getw / putw (tự đọc)

fread / fwrite

Hàm fread:

Truy xuất file nhị phân (tt)

Hàm fwrite:

Trang 5

Truy xuất file nhị phân (tt)

Hàm ftell:

Truy xuất file nhị phân (tt)

Ngày đăng: 05/07/2014, 12:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w