Professional Documents
Culture Documents
Structured files
Giới thiệu
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 2
1
Giới thiệu
ªCác thuật ngữ thường dùng:
File structure
File format
File header
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 3
ªDữ liệu lưu trữ trên file có cấu trúc thích hợp
à hiệu suất truy xuất cao
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 4
2
Giới thiệu (tt)
ªDữ liệu lưu trữ trên file thường theo 2 dạng phổ
biến:
Dữ liệu text thô (plain text)
Dữ liệu nhị phân (binary)
Structured files
Giới thiệu
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 6
3
Plain text
ªPlain text phi cấu trúc:
Không phân hoạch theo
ý nghĩa, chức năng
Rất khó xử lý
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 7
[left]
path=I:\DCIM\101MSDCF\
ShowAllDetails=1
show=1
sortorder=3
negative Sortorder=1
[right]
path=F:\Nguyen Tri Tuan\
…
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 8
4
Plain text, có cấu trúc (tt)
ªĐịnh nghĩa:
Dữ liệu được chuyển thành dạng chuỗi (string) và lưu
lên file theo một qui tắc nhất định
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 9
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 10
5
Plain text, có cấu trúc (tt)
// Minh họa đoạn code tạo file WINCMD.INI
FILE *f;
char path[MAX_LEN];
int showAllDetails, show;
int sortOrder, negativeSortOrder;
f = fopen(“wincmd.ini”, “wt”);
fprintf(f, “[left]\n”);
fprintf(f, “path=%s\n”, path);
fprintf(f, “ShowAllDetails=%i\n”, showAllDetails);
fprintf(f, “show=%i\n”, show);
fprintf(f, “sortorder=%i\n”, sortOrder);
fprintf(f, “negative Sortorder=%i\n”,
negativeSortOrder);
fclose(f);
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 11
Structured files
Giới thiệu
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 12
6
Tập tin nhị phân
ªĐịnh nghĩa:
Dữ liệu được lưu trên file giống như cách mà nó
thường được lưu trong bộ nhớ chính
Dữ liệu thường lưu dạng record
typedef struct {
unsigned int ID; ID 4 bytes
char name[30];
float avgPoint;
} STUDENT; name 30 bytes
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 13
FILE *f;
STUDENT oneStudent;
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 14
7
Tập tin nhị phân (tt)
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 15
FILE *f;
WINCMD_CFG leftPanelCfg, rightPanelCfg;
// tạo file
f = fopen(“wincmd.cfg”, “wb”);
// tạo 1st record
fwrite(&leftPanelCfg, sizeof(WINCMD_CFG), 1, f);
// tạo 2nd record
fwrite(&rightPanelCfg, sizeof(WINCMD_CFG), 1, f);
fclose(f);
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 16
8
Tập tin nhị phân (tt)
ªCác tính chất:
Dễ truy xuất và xử lý
Tốc độ truy xuất nhanh
Tính bảo mật cao hơn
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 17
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 18
9
Tập tin nhị phân (tt)
ªFile có cấu trúc riêng, tự tổ chức:
Thường được thiết kế chuyên biệt cho ứng dụng
Cấu trúc file được qui ước ngầm định trong ứng dụng
Cấu tạo không phức tạp
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 19
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 20
10
Tập tin nhị phân (tt)
ªFile có cấu trúc chuẩn: (tt)
Header: là phần dữ liệu (thường lưu ở đầu file) để
cung cấp thông tin về cấu trúc chi tiết của file đó
Header: Header:
kích thước ảnh (W, H); Số field; tên các
số màu; bảng màu; độ field; kiểu dữ liệu
phân giải;… các field; số
record; ngày cập
nhật;…
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 21
Header động:
Kích thước header thay đổi tùy file
Dùng cho các file có thành phần cấu tạo biến thiên
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 22
11
Structured files
Giới thiệu
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 23
ªẢnh bitmap
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 24
12
Tập tin hình ảnh *.PCX (tt)
ª Lịch sử hình thành, công dụng:
Được xây dựng ~1985, bởi công ty ZSoft Corporation
Là một trong các chuẩn tập tin dùng để lưu ảnh bitmap đầu tiên;
được dùng trong phần mềm PC PaintBrush
Cho phép lưu các ảnh bitmap đơn; dạng 2 màu, 16 màu, 256
màu, 16 triệu màu
Được hỗ trợ trong nhiều phần mềm xử lý ảnh
Là dạng file nhị phân có cấu trúc header tĩnh
Mã Version
0 2.5 (dùng cho PC Paintbrush – DOS)
2 2.8 có bảng màu (palette)
3 2.8 không có bảng màu
4 Dùng cho PC Paintbrush Windows
5 3.0 (dùng cho PC Paintbrush, Publisher’s
Paintbrush). Thể hiện được ảnh 24 bits màu
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 25
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 26
13
Tập tin hình ảnh *.PCX (tt)
ªẢnh bitmap: (tt)
Mỗi màu được tạo thành từ 3 thành phần cơ bản
(Red, Green, Blue), mỗi thành phần biểu diễn bằng 1
byte à cần 3 bytes/màu
Mỗi pixel được biểu diễn bằng 1 số lượng bit tùy theo
số lượng màu
2 màu à 1 bit/pixel
16 màu à 4 bits/pixel
256 màu à 8 bits/pixel
16 triệu màu à 24 bits/pixel
Các thông số khác:
Độ phân giải (DPI)
Hình thức nén dữ liệu
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 27
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 28
14
Tập tin hình ảnh *.PCX (tt)
ª Cấu trúc header: (tt)
Offset Chiều dài Thành phần Ý nghĩa
0 1 Manufacturer Hằng số để nhận dạng loại file PCX (= 10: ZSoft .PCX)
1 1 Version Version
2 1 Encoding Cờ cho biết hình thức mã hóa dữ liệu pixel
(1: nén PCX RLE; 0: không nén)
3 1 BitsPerPixel Số bit dữ liệu dùng cho 1 pixel (trên 1 scan line).
Giá trị 1, 4, 8
4 2 Xmin Tọa độ X của góc trên trái
6 2 Ymin Tọa độ Y của góc trên trái
8 2 Xmax Tọa độ X của góc dưới phải
10 2 Ymax Tọa độ Y của góc dưới phải
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 29
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 30
15
Tập tin hình ảnh *.PCX (tt)
ª Cấu trúc header: (tt)
W = Xmax – Xmin + 1 (cột)
H = Ymax – Ymin + 1 (dòng)
Số màu:
BitPerPixel Color Plane Số màu
1 1 B/W
1 4 16 màu
4 1 16 màu
8 1 256 màu
8 3 24 bits màu (16 tr màu)
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 31
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 32
16
Tập tin hình ảnh *.PCX (tt)
// Cấu trúc dữ liệu để lưu PCX Header
// giả sử đang dùng HĐH 16 bits
typedef struct PCX_HEADER {
unsigned char manufacturer;
unsigned char version;
unsigned char encoding;
unsigned char bitsPerPixel;
unsigned int xMin, yMin, xMax, yMax;
unsigned int hDPI;
unsigned int vDPI;
RGB_ENTRY colorPalette[16];
unsigned char reserved;
unsigned char colorPlane;
unsigned int bytesPerLine;
unsigned int paletteInfo;
char filter[58];
};
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 33
f = fopen(“xyz.pcx”, “rb”);
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 34
17
Tập tin hình ảnh *.PCX (tt)
ªLưu trữ dữ liệu điểm ảnh:
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 35
.
.
.
Dữ liệu được lưu trữ
0 0 0 1 1 0 0 1 9
15
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 36
18
Tập tin hình ảnh *.PCX (tt)
ªLưu trữ dữ liệu điểm ảnh: (tt)
0
1
.
.
Dữ liệu được lưu trữ .
41
0 0 1 0 1 0 0 1
255
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 37
0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0
R G B
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 38
19
Thank you
for your attention
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 39
Q&A
Sprint 2006 Data Structure & Algorithm - Structured files - Nguyen Tri Tuan, DH.KHTN Tp.HCM 40
20