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

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

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 )

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ố ngun 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, *.W A V , *.A VI,…

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");
while (!feof(f))
{
fscanf(f,"%d",&a);
printf("%3d", a);
}
fclose(f);
}

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

// mở tập tin để đọc dạng text
// kiểm tra đến cuối tập tin chưa

// đọc dữ liệu dạng text vào biến a
// đóng tập tin sau khi làm xong


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);
}

GVHDTH: Nguyễn Ngọc Thảo



×