xuanhoa7604
Thành viên hoạt động
- Tham gia
- 9/6/08
- Bài viết
- 169
- Được thích
- 82
- Nghề nghiệp
- Giáo viên
Các bác cho mình hỏi là nếu mình khai báo một bản ghi như sau:
Khi mình dùng bản ghi này để ghi dữ liệu vào file có cấu trúc thì mình phải khai báo chiều dài trong phần Len thế nào?
Mình đọc thì thấy bảo khai báo là
Khi mình dùng thế thì có lúc thì được, có lúc thì bị lỗi Bad record length. Mình tìm hiểu thêm (phần help trong thông báo lỗi) thì do toàn tiếng anh nên mình chỉ dịch được sơ sơ là nếu dùng mảng như trên thì chiều dài sẽ phải cộng thêm 8+2*Chiều dài gì đó. Mình chẳng hiểu thế nào cả. Bác nào biết thì giúp mình với. Mình xin đưa nguyên văn chỗ mình dịch nữa (trong phần help đó)
Mã:
Public Type DiemMonHKData
DiemMieng(1 To 3) As Byte
H1(1 To 6) As Byte
H2(1 To 6) As Byte
HK As Byte
TBM As Byte
End Type
Mình đọc thì thấy bảo khai báo là
Mã:
Dim HS As DiemMonHKDataOpen "HS.dat" For Random As #1 Len = Len(HS)
- If the variable being read into is a dynamic array, Get reads a descriptor whose length equals 2 plus 8 times the number of dimensions, that is, 2 + 8 * NumberOfDimensions. The record length specified by the Len clause in the Open statement must be greater than or equal to the sum of all the bytes required to read the array data and the array descriptor. For example, the following array declaration requires 118 bytes when the array is written to disk.
Dim MyArray(1 To 5,1 To 10) As IntegerThe 118 bytes are distributed as follows: 18 bytes for the descriptor (2 + 8 * 2), and 100 bytes for the data (5 * 10 * 2).