我需要從由Visual Basic 6 生產從傳統的軟件,舊的數據庫文件中讀取數據,我發現文件被寫入使用put和將各種記錄作爲參數傳遞給Put函數。這些結構的定義如下:閱讀(帶Filesystem.FileGet)VB6記錄文件(放置了寫的)用C#
Type THE_TYPE
FIELD_1 As Single
FIELD_2 As String * 20
FIELD_3(1 To 50) As Single
FIELD_4(1 To 10) As String * 1
End Type
我的類型有更大和更復雜的,但我已經把THE_TYPE不同的定義我已經在我的項目。我發現導入Microsoft.VisualBasic使我可以訪問類似於用於寫入文件的VB函數,所以我用FileSystem.OpenFile()和.CloseFile()打開和關閉文件。現在我需要終於看完包含的數據,並且由於最初的功能是:
Public RecordContent As THE_TYPE
[...]
Get #1, recordNumber, RecordContent
我想我可以使用類似的東西,像Microsoft.VisualBasic.FileSystem.FileGet()。 所以問題是,我如何定義一個容器,我想是一個類,類似於原始VB6類型「THE_TYPE」?我如何調用.FileGet()來正確填充此對象?
雖然GSerg可能會指出你在正確的方向,知道有在路上'Put'工作的'Random'和'Binary'的'Open'模式之間的差異很大。見http://msdn.microsoft.com/en-us/library/aa266212(v=VS.60).aspx和http://msdn.microsoft.com/en-us/library/aa266177(v=vs。 60).aspx的細節。我提出這個問題,因爲如果'String'和數組成員都是固定大小,我想知道VB6應用程序是否使用了'Open ... Binary'模式。 – rskar 2012-03-27 13:44:32
這是在隨機模式 – ccalboni 2012-03-27 13:55:10
+1對於導入'Microsoft.VisualBasic'和使用'FileSystem'。你會驚訝[怎麼](http://stackoverflow.com/questions/7290976/vb6-how-are-binary-files-encoded-using-put-statement)[經常](http://stackoverflow.com/questions/8886096 /轉換 - 快速基本到vb-net-random-access-files)的人忽略了這些! – MarkJ 2012-03-27 19:02:09