Скажем, у меня есть файл данных, который был создан в VB6 следующим образом:
Dim arr As Variant
Dim unit As Integer
Dim i As Integer
unit = FreeFile
Open "SomeFile.dat" For Binary As unit
ReDim arr(1 To 10)
For i = 1 To 10
arr(i) = i
Next
Put #unit, , arr
Close #unit
Я пытаюсь использовать пространство имен Microsoft.VisualBasic для чтения содержимого этого файла с помощью процедуры FileGetObject. Однако FileGetObject завершается с ошибкой IndexOutOfRangeException. Я предполагаю, что это терпит неудачу, потому что это не может обращаться с ненулевыми массивами. У кого-нибудь есть способ прочитать массив на основе одного из файла данных VB6 в .NET?
Вот мой код VB.NET:
Imports Microsoft.VisualBasic
Dim mFileNumber as Integer = FreeFile()
FileOpen(mFileNumber, "SomeFile.dat", OpenMode.Binary, OpenAccess.Read)
Dim arr as Object
FileGetObject(mFileNumber, arr)
Обратите внимание, что реальные файлы, которые я читаю, намного сложнее, чем этот пример, так как они могут содержать вложенные массивы и многомерные массивы на основе 0 или 1.
Большое спасибо за помощь,
Kenny