Tác giả: truongphu
Mô tả: Thông thường chúng ta quen duyệt file theo dạng String. Bài viết trình bày Kỹ thuật ghi và đọc file nhị phân
Muốn ghi và đọc file nhị phân bạn phải mở file theo dạng: Open FileName For Binary As Filenum.
Dạng For Binary không quan tâm đến dòng, chỉ biết đến vị trí của byte đang xét.
Đọc và Ghi file: Dùng Function Get và Put như hướng dẫn ở VBLib.
Giá trị ghi có thể là số (vd: Long), chuỗi (string) hay một kiểu biến mà bạn định nghĩa.
Ghi với hàm Put phải kèm vị trí ghi. Ghi ở đầu file, vị trí ghi đương nhiên là 1.
Ghi giá trị ở vị trí nào thì phải đọc đúng vị trí ấy
Ghi giá trị theo định dạng nào thì phải đọc đúng định dạng ấy
Hệ quả: Khi ghi vào file theo dạng For Binary, với định dạng giá trị khác String, mở file thông thường, vd bằng Notepad, sẽ thấy toàn ô vuông! (nghĩa là Notepad đọc theo định dạng String nên không hiểu gì cả)
Sau đây là Code minh họa nội dung trên, cũng là minh họa bài trả lời bạn tasamsung với bài "Đọc file Binary?"
http://www.caulacbovb.com/forum/viewtop ... f=7&t=1016
Code: Select all
Private Type HocSinhHoTên As StringTuôi As ByteGioiTính As StringCânnang As IntegerChiêuCao As LongHocLuc As StringEnd TypePrivate Sub Form_Load()Dim a As HocSinha.Cânnang = 52a.ChiêuCao = 167a.GioiTính = "Nu"a.HocLuc = "Gioi"a.HoTên = "Hà Kiêu Em"a.Tuôi = 21Open "C:\1.txt" For Binary As #1Put #1, 1, aClose #1End SubPrivate Sub Command1_Click()Open "C:\1.txt" For Binary As #1Dim b As HocSinhGet #1, 1, bMsgBox b.Cânnang & vbCrLf & b.ChiêuCao & vbCrLf & b.GioiTính & vbCrLf & b.HocLuc & vbCrLf & b.HoTên'Chi có thê dùng lênh trong Command1 mo'i Ðoc hêt nôi dung cua C:\1.txtEnd Sub