Các khái niệm cơ bản Có hai cách nhìn nhận cấu trúc file là cách nhìn logic 0 Current Pos EOF... Các khái niệm cơ bản... Các khái niệm cơ bản Dạng nhị phân: dữ liệu xem như các số nhị ph
Trang 1File
Trang 22.1 Các khái niệm cơ bản
CH ƯƠ NG
TRÌNH
H ệ đ i ề u hành Tên file, ch ỉ thị đọc ghi
Con tr ỏ file (file ID)
Trang 32.1 Các khái niệm cơ bản
Có hai cách nhìn nhận cấu trúc file là cách nhìn logic
0
Current Pos
EOF
Trang 42.1 Các khái niệm cơ bản
Trang 52.1 Các khái niệm cơ bản
Dạng nhị phân: dữ liệu xem như các số nhị phân.
fTXT = fopen(“filename”,”r+t”); // mở để đọc/ghi.
Trang 62.1 Các khái niệm cơ bản
Trang 72.1 Các khái niệm cơ bản
Trang 82.1 Các khái niệm cơ bản
Trang 92.1 Các khái niệm cơ bản
Mở file trong chế độ nhị phân
Trang 102.1 Các khái niệm cơ bản
Truy xuất ngẫu nhiên phần tử thứ i
//chuyển đến phần tử thứ I tính từ phần tử đầu tiênfseek(f, i*sizeof(item), SEEK_SET);
//đọc phần tử thứ i.
fread(&item, sizeof(item), 1, f);
fread(&item, sizeof(item), 1, f);
Trang 112.1 Các khái niệm cơ bản
Cập nhật phần tử thứ i trong file nhị phân
Trang 122.1 Các khái niệm cơ bản
Ghi phần tử lên file nhị phân
FILE *fBIN;
fBIN = fopen(“filename”, “wb”);
fputc(‘A’, fBIN); fputc(26, fBIN);
fputc(10, fBIN); fputc(‘B’, fBIN);
fputc(10, fBIN); fputc(‘B’, fBIN);
Kết quả: 65 26 10 66 (4 byte)
Trang 132.1 Các khái niệm cơ bản
Trang 142.1 Các khái niệm cơ bản
Trang 152.1 Các khái niệm cơ bản
Xác định vị trí hiện tại: long nPos = ftell(f);
Đưa con trỏ về đầu file:
rewind(f); hoặc: fseek(f, 0, SEEK_SET);
Đưa con trỏ về cuối file: fseek(f, 0, SEEK_END);
Đưa con trỏ lùi lại một phần tử:
Trang 162.2 File có cấu trúc
File v ă n b ả n có c ấ u trúc: Độ b ả o m ậ t và t ố c độ
x ử lý ch ậ m
File nh ị phân có c ấ u trúc: D ữ li ệ u t ổ ch ứ c thành các record và chi ế m h ầ u h ế t dung l ượ ng c ủ a file.
Trang 182.2 File có cấu trúc
File có phần header
Bao gồm hai phần: Phần header và Phần Data
char filename[ ] = “header.BIN”;
Trang 222.3 Thuật toán Merge-Sort
Trang 232.3 Thuật toán Merge-Sort
Trộn f1, f2 thành f0:
f0: 12 24 33 67 42 58 11 34 29 31
Trang 242.3 Thuật toán Merge-Sort
Bước 2:
Phân bố m=2 phần tử lần lượt từ f0 vào f1 và f2:
f1: 12 24 42 58 29 31f0: 12 24 33 67 42 58 11 34 29 31f2: 33 67 11 34
f2: 33 67 11 34
Trộn f1, f2 thành f0:
f1: 12 24 42 58 29 31f0: 12 24 33 67 11 34 42 58 29 31
Trang 252.3 Thuật toán Merge-Sort
Bước 3:
Phân bố m=4 phần tử lần lượt từ f0 vào f1 và f2:
f1: 12 24 33 67 29 31f2: 11 34 42 58
Trộn f1, f2 thành f0:
25
Trộn f1, f2 thành f0:
f0: 11 12 24 33 34 42 58 67 29 31
Trang 262.3 Thuật toán Merge-Sort
Bước 4:
Phân bố m=8 phần tử lần lượt từ f0 vào f1 và f2:
f1: 11 12 24 33 34 42 58 67f2: 29 31
Trang 2727