Tải bản đầy đủ (.pdf) (4 trang)

TẬP TIN VĂN BẢN – TẬP TIN NHỊ PHÂN ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1 MB, 4 trang )

GVHDTH: Nguyễn Ngọc Thảo
TẬP TIN VĂN BẢN – TẬP TIN NHỊ PHÂN
1. Phân loại
Tập tin là hình thức lưu trữ phổ biến trên bộ nhớ phụ, gồm 2 loại:
Ø Tập tin văn bản: là tập tin chỉ lưu trữ thuần túy văn bản, trong đó các kí tự
được biểu diễn bằng mã ASCII của nó, người dùng có thể đọc được.
Tính chất:
§ Dễ truy xuất và xử lí
§ Độ bảo mật kém
§ Tốc độ truy xuất kém
§ Kích thước lớn.
- Vd: Lưu số nguyên 12345 ở dạng binary (2 byte) và dạng
chuỗi (5 byte).
Các dạng thường gặp:
§ Tập tin cấu hình: *.INI, *.CFG
§ *.TXT, *.HTML, *.XML

Ø Tập tin nhị phân: là tập tin chứa dữ liệu mà có ít nhất một vài chuỗi bit
không thể biểu diễn ở dạng văn bản trơn, do đó tập tin này chỉ có máy đọc
được còn người dùng không đọc được.
Tính chất:
§ Truy xuất và xử lí phức tạp hơn
§ Tốc độ truy xuất nhanh
§ Tính bảo mật cao hơn
Các dạng thường gặp:
§ Các tập tin có cấu trúc tự định nghĩa
§ *.DOC, *XLS, *PDF, *PPT
§ *.JPG, *.PCX, *.BMP,*.TIF
§ *.MP3, *.WAV, *.AVI,…
GVHDTH: Nguyễn Ngọc Thảo
2. Một số hàm xử lí chung cho cả hai dạng tập tin (xem MSDN)


Tên hàm Chức năng
fopen
Mở tập tin theo kiểu văn bản hoặc nhị phân
fclose
Đóng tập tin
fcloseall
Đóng tất cả các tập tin
fflush
Làm sạch vùng đệm của một tập tin đang mở
fflushall
Làm sạch vùng đệm của tất cả các tập tin đang mở
remove/unlink

Xóa tập tin

3. Một số hàm xử lí dùng cho tập tin văn bản (xem MSDN)
Tên hàm Chức năng
fopen
Mở tập tin theo kiểu văn bản hoặc nhị phân
fclose
Đóng tập tin
fcloseall
Đóng tất cả các tập tin
fprintf
Ghi giá trị dạng text lên tập tin
fscanf
Đọc giá trị dạng text từ tập tin
fflush
Làm sạch vùng đệm của một tập tin đang mở
fflushall

Làm sạch vùng đệm của tất cả các tập tin đang mở
remove/unlink

Xóa tập tin
putc/fputc
Ghi lên tập tin một kí tự (sử dụng trong tập tin văn bản hoặc nhị
phân có khác biệt)
getc/fgetc
Đọc từ tập tin một kí tự (sử dụng trong tập tin văn bản hoặc nhị
phân có khác biệt)

4. Một số hàm xử lí dùng cho tập tin nhị phân (xem MSDN)
Tên hàm Chức năng
putw
Ghi một số nguyên lên tập tin
getw
Đọc một số nguyên từ tập tin
GVHDTH: Nguyễn Ngọc Thảo
fwrite
Ghi các mẫu tin (có cấu trúc định trước) lên tập tin
fread
Đọc các mẫu tin (có cấu trúc định trước) từ tập tin
fseek
Di chuyển con trỏ chỉ vị đến vị trí mong muốn
ftell
Cho biết vị trí hiện tại của con trỏ chỉ vị

5. Các ví dụ về đọc/ghi tập tin văn bản và nhị phân
Ghi tập tin văn bản
#include <stdio.h>

void main()
{
int a[10] = {10,9,8,7,6,5,4,3,2,1};
FILE *f = fopen("number_text.txt", "wt");
for (int i = 0; i < 10; i++)
{
printf("%3d", a[i]);
fprintf(f,"%d\n",a[i]);
}
fclose(f);
}

Đọc tập tin văn bản
#include <stdio.h>
void main()
{
int a;
FILE *f = fopen("number_text.txt", "rt"); // mở tập tin để đọc dạng text
while (!feof(f)) // kiểm tra đến cuối tập tin chưa
{
fscanf(f,"%d",&a); // đọc dữ liệu dạng text vào biến a
printf("%3d", a);
}
fclose(f); // đóng tập tin sau khi làm xong
}

Ghi tập tin nhị phân
#include <stdio.h>
typedef struct
{

char mssv[10];
char name[30];
}SV;

GVHDTH: Nguyễn Ngọc Thảo
void main()
{
int i;
SV arr[5];
FILE *f = fopen("number_binary.bin", "wb");
for (i = 0; i < 5; i++){
printf("Nhap MSSV: ");
gets(arr[i].mssv);
printf("Nhap ten: ");
gets(arr[i].name);
}
for (i = 0; i < 5; i++)
fwrite(&arr[i], sizeof(SV), 1, f);

fclose(f);
}

Đọc tập tin nhị phân
#include <stdio.h>
typedef struct
{
char mssv[10];
char name[30];
}SV;


void main()
{
int i;
SV arr[5];
FILE *f = fopen("number_binary.bin", "rb");

for (i = 0; i < 5; i++)
{
fread(&arr[i], sizeof(SV), 1, f);
printf("MSSV: %s\nHo ten: %s\n\n", arr[i].mssv, arr[i].name);
}
fclose(f);
}

×