Примечание. Я переписал этот вопрос с нуля, чтобы упростить проблему ...
Следующая функция записывает запись в двоичный файл:
Public Type TestRecord
Available As Boolean
Inidcator As String
End Type
Private Sub WriteTestRecord(ByVal RecCount As Integer)
Dim Fn As Integer, CN As Integer
Dim filename As String
Dim EmpRec As TestRecord
Dim clk() As TestRecord
ReDim clk(1 To RecCount)
Debug.Print Len(EmpRec)
filename = "C:\TestRecFile.bin"
If Len(Dir(filename)) > 0 Then Kill filename
Fn = FreeFile
Open filename For Random As #Fn Len = Len(EmpRec)
For CN = 1 To RecCount
EmpRec = clk(CN)
Put #Fn, , EmpRec
Next CN
Close #Fn
End Sub
Обратите внимание, что Len(EmpRec) = 6
при пошаговом выполнении этого кода
Если я вызываю функцию и записываю одну запись - она записывает только 4 байта:
Call WriteTestRecord(1)
'длина файла4 байта
Если я вызываю функцию и записываю более одной записи - она записывает (RecCount*6) - 2
байтов:
Call WriteTestRecord(10)
'длина файла составляет 58 байтов
Это связано с тем, что в моем типе есть строка нефиксированной длины, но почему первая запись отличается от всех остальных?