在VB.net中将文本解析为130个字符的行

时间:2014-12-16 17:42:12

标签: vb.net visual-studio-2010 text

我正在使用Visual Basic(Visual Studio 2010)打开和读取未分隔的大文本文件(该文件由基于UNIX的程序生成)。我需要将该长行解析为130个字符的行。我知道如何阅读该文件。但我不知道如何将其分解为这些行。你能帮忙吗?

提前感谢您的协助!

2 个答案:

答案 0 :(得分:1)

创建StreamReader strReader = New StreamReader("file.txt")

并使用方法StreamReader.read(new char[130], 0, 130);

130第一个字符将被放入char数组中。然后,您必须偏移到文件末尾。

该功能的文档在这里:http://msdn.microsoft.com/en-us/library/9kstw824(v=vs.110).aspx

修改

更好的方法是使用此处建议的readBlocks方法:When to use StreamReader.ReadBlock()?

char buffer = char[130];
int len = 0;
while((len = strReader.ReadBlock(buffer, 0 , 130)) != 0)
{
  Dim value As String = New String(buffer);
  Console.WriteLine(value);
}

while将继续,直到文件中还有剩余字符。 value字符串包含130个字符的行,您可以随意使用它。

答案 1 :(得分:0)

以下是Mathieu Nls ReadBlock()的VB版本,其中包含一些小的更改和修复:

    Dim charsRead As Integer
    Dim buffer(129) As Char ' 0 to 129 = 130 chars
    Using SR As New System.IO.StreamReader(RestranName)
        While Not SR.EndOfStream
            charsRead = SR.ReadBlock(buffer, 0, buffer.Length)
            If charsRead > 0 Then
                Dim str As New String(buffer, 0, charsRead)
                Debug.Print(str)
            End If
        End While
    End Using