我正在将项目从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语句的替代品?如何申请?
谢谢:)
答案 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);
我想,你可以理解