FileOpen(10, str_Coordinate, OpenMode.Input) vb.net 按行读取
时间: 2024-09-12 07:02:38 浏览: 41
NMEA_Lib-0.0.1.tar.gz_NMEA_NMEA CAN_NMEA file_nmea decode_nmea.l
在VB.NET中,`FileOpen` 函数通常不是用来直接按行读取文本文件,特别是在没有提供相应文件I/O类的情况下,例如`StreamReader`或`TextFieldParser`。`FileOpen` 是早期版本(Visual Basic 6或更低版本)中的一个低级文件操作函数,主要用于二进制文件的读写。
如果你想要按行读取CSV文件,并且使用的是现代的语法,应该像前面提到的那样,使用 `OpenMode.Input` 和 `TextFieldParser` 类来逐行读取,如下所示:
```vb.net
Dim openMode As FileMode = FileMode.Open
Dim fileNumber As Integer = 10 ' 如果是文本文件,比如 "str_Coordinate"
Dim filePath As String = $"{fileNumber}.csv"
Using reader As New StreamReader(filePath, encoding:=New UTF8Encoding(), detectEncodingFromByteOrderMarks:=True)
' 使用OpenMode.Input模式
' 注意此处的OpenMode已经被内建到StreamReader的构造函数中,无需额外指定
Using parser As New TextFieldParser(reader)
parser.TextFieldType = FieldType.Delimited
parser.SetDelimiters(",")
While Not reader.EndOfStream ' 代替FileOpen(10, OpenMode.Input)
Dim fields() As String = parser.ReadFields()
' 按行处理每个字段
For Each field In fields
Console.WriteLine(field)
Next
End While
End Using
End Using
```
`FileOpen` 的原始形式已经不再推荐,因为它限制了文件操作的功能和错误处理能力。对于文本文件操作,建议使用高级API,如上面的示例所示。
阅读全文