错误BC30829'Get'语句不再受支持-从vb6转换到vb.net

时间:2018-10-23 07:28:50

标签: vb.net vb6 vb6-migration

我正在将项目从vb6转换为vb.net。
我转换了大部分零件,但停留在一条线上。

VB6代码:

    Do While Not EOF(FileO)
        Get #FileO, , ByteBuffer
        If Loc(FileO) < LOF(FileO) Then
            ByteCounter = ByteCounter + 64
        End If
    Loop

VB.NET代码:

  Do While Not EOF(FileO)
            Get(#FileO, , ByteBuffer) '----------> PROBLEM HERE
            If Loc(FileO) < LOF(FileO) Then
                ByteCounter = ByteCounter + 64
            End If
        Loop

get语句出现问题。
Get(#FileO, , ByteBuffer)

我面临的错误是:

  

错误BC30829的“获取”语句不再受支持。文件I / O功能在“ Microsoft.VisualBasic”命名空间中可用。

什么是GET语句的替代品?如何申请?
谢谢:)

2 个答案:

答案 0 :(得分:1)

 Option Explicit On

 Imports System
 Imports System.IO

 Module Module1
     Sub Main()
         Dim ByteBuffer As Byte()

         Using myFile As BinaryReader = New BinaryReader(File.Open("TESTFILE.BIN", FileMode.OpenOrCreate))
             While myFile.BaseStream.Position < myFile.BaseStream.Length
                 ByteBuffer = myFile.ReadBytes(64)
             End While

             myFile.Close()
         End Using
     End Sub

End Module

答案 1 :(得分:0)

作为一个快速入门-您应该使用ide和对象浏览器来查看可以从中获得什么:

// make sure the read buffer is big enough
string testReadData = "".PadRight(128);
int filenumber = VB6FileSystem.FreeFile();
VB6FileSystem.FileOpen(filenumber, @"c:\temp\test.dat", VB.OpenMode.Random, RecordLength: 128);
// Write some test data ....
VB6FileSystem.FilePut(filenumber, "Testdaten 1", 1, true);
VB6FileSystem.FilePut(filenumber, "Testdaten 4", 4, true);
VB6FileSystem.FilePut(filenumber, "Testdaten 14", 14, true);
// Read some data ...
VB6FileSystem.FileGet(filenumber, ref testReadData, 14, true);
VB6FileSystem.FileClose(filenumber);

我想,你可以理解