有誰知道是否有可能讀取C#中的隨機訪問文件?讀取C#中的隨機訪問文件
我試圖複製在C#中的以下功能(從舊VB6應用程序) -
Open File For Random Shared As #100 Len = Len(Record)
Get #100, DM, Record
Close #100
Public DM As Long
Public Record As DMrecord
Public Type DMrecord
column1 As Long
column2 As Integer
column3 As Integer
column4 As Integer
column5 As String * 4
End Type
編輯 -
我現在已經使用的VisualBasic DLL嘗試的建議之下和接收FileGetObject行上出現以下錯誤 -
「Microsoft.VisualBasic.FileSystem.FileGetObject(int,ref object,long)的最佳重載方法匹配有一些無效參數」
我使用的代碼 -
public class Record
{
public int DMtype;
public long ecn;
public Record(int DMtype, long ecn)
{
this.DMtype = DMtype;
this.ecn = ecn;
}
public Record()
{
}
}
string fileName = @"C:\RandomAccess.dat";
string returnString = string.Empty;
int row = 1;
int maxRow = 1000;
Record aFileRecord = new Record();
FileSystem.FileOpen(1, fileName, OpenMode.Random, OpenAccess.Read, OpenShare.LockRead);
while (row < maxRow)
{
//Get record 2 1st.>>
FileSystem.FileGetObject(1, aFileRecord, row);
returnString += aFileRecord.DMtype.ToString() + "$" + aFileRecord.ecn.ToString();
row++;
}
FileSystem.FileClose(1);
我已經嘗試設置「錄製」既是結構和類,並得到同樣的錯誤。
編輯22/08/13 - 我從來沒有得到的這條底線,結束了在VB6導出隨機訪問數據,以逗號分隔的文本文件,然後在消費SSIS的文件。
您必須使用BinaryReader自己解釋數據。 [看到這裏開始](http://stackoverflow.com/questions/4429829/read-variable-sized-string-from-binary-file-vb6-vs-c)長期你可以閱讀'BinaryReader.ReadInt64( )',整數與'BinaryReader.ReadInt32()',你必須一次讀取一個字符串。按照我給出的鏈接中的描述閱讀它們。 – 2013-04-30 16:40:20
說明:vb6 Long實際上是int32 – 2013-04-30 16:45:29
哎呀,所以我應該說「Long你可以用'BinaryReader.ReadInt32()讀取」 – 2013-04-30 16:46:28