I E= T*R
LOF : xác định độ dài file đã mở
Seek : xácđịnh/thiết lập vịtrí truy xuất file
GetAttr : đọc thuộc tính file
SetAttr : ghi thuộc tính file
Chương 11 : Quản lý hệthống file
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 296
11.2 Qui trình điển hình để truy xuất Binary file
Cú pháp lệnh open file nhịphân nhưsau :
OpenpathnameFor Binary Asfilenumber
Nếu chưa biết cấu trúc dữliệu của file, nên dùng biến dãy các byte để đọc/ghi dữliệu từ/ra file nhịphân. Nếuđã biết cấu trúc dữliệu của file, nên khai báo kiểu dữliệu miêu tảcấu trúcđó rồi khai báo biến có kiểu vừađịnh nghĩađểchứa thông tin đọc từfile vào.
Dùng lệnhSeek [#]filenumber,positionđểdời pointer đọc/ghi tới vịtrí xácđịnh trước khi truy xuất.
Dùng lệnhGet[#]filenumber, [position], AVariableđể đọc dữliệu từvịtrí
positionrồi chứa vào biến AVariable. Sốbyte đượcđọc = kích thước của biến dữliệu.
Dùng lệnhPut[#]filenumber, [position], AVariableđểghi nội dung của biếnAVariablera file từvịtríposition.Sốbyte được ghi = kích thước của biến dữliệu.
Sau khiđã xửlý xong file, ta dùng lệnh Close [#]filenumđể đóng file lại.
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 297
Thí dụ truy xuất Binary file
Mỗi file khảthi (executable) đều có 1 header dài 20h (32) byte với các field như
sau :
Index Field Diễn giải
0 Magic Chuỗi 2 ký tựmagic "MZ" ... ... các field khác chưa cần chú ý
18h Offset Offset tới bảng táiđịnh chương trình stub Nếu giá trịfield Offset (2 byte) ởoffset 18h (24) có giá trịlà 40h (64) thì file tươngứng là file executable trên Windows (*.exe, *.dll, *.ocx, *.scr, *.drv,...). Còn nếu giá trịOffset < 40h thì file tươngứng là file *.exe chạy trên DOS.
Dựa vào Header trên, ta thửviết 1 ứng dụng cho phép user chọnđường dẫn của 1 file bất kỳrồi kiểm tra tính chất của file đó và hiển thịkết quả:
Không phải file executable
File executable chạy trên DOS
File executable trên Windows (*.exe, *.dll, *.ocx, *.scr, *.drv,...).
Chương 11 : Quản lý hệthống file
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 298
Giao diện đề nghị của thí dụ truy xuất Binary file
Textbox hiển thị đường dẫn file cần khảo sát. Button duyệt và chọn file. Textbox chứa kết quả khảo sát. Option Explicit ' Thủtục xửlý sựkiện Click button Private Sub cmdBrowse_Click()
CommonDialog1.ShowOpen ' hiển thịcửa sổduyệt và chọn file txtFileName.Text = CommonDialog1.FileName
CheckFileClass (txtFileName.Text) End Sub
CommonDialog duyệt file (bị ẩn)
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 299