4

有谁知道是否可以在 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 中使用这些文件。

4

1 回答 1

1

只需添加一个引用Microsoft.VisualBasic.dll并使用FileSystem.FileOpen指定Random打开模式和FileSystem.FileGetObject方法。这与VB6中的Open语句和关键字的行为相同。Get

于 2013-05-01T11:09:13.080 回答