Vb.net 是否重写从txt文件收集的数据?

Vb.net 是否重写从txt文件收集的数据?,vb.net,text-files,Vb.net,Text Files,我有一个由垂直列表组成的txt文件。该列表包含x数量的组,但标准的是它们总是由三个实体组成 示例如下: PANNEL A 38 2440 (“NEW BEAM” is “38” x “2440”) (“WOOD” is “22” x “610”) (“ITEM A” is “50” x “1220”) 解释为: NAME WIDTH LENGTH 三个项目的列表(尽管列表可以包含x金额)与以下内容相同: NEW BEAM 38 2440 WOOD 22 610 ITEM A 50 1

我有一个由垂直列表组成的txt文件。该列表包含x数量的组,但标准的是它们总是由三个实体组成

示例如下:

PANNEL A
38
2440
(“NEW BEAM”  is “38” x “2440”)
(“WOOD”  is “22” x “610”)
(“ITEM A”  is “50” x “1220”)
解释为:

NAME
WIDTH
LENGTH
三个项目的列表(尽管列表可以包含x金额)与以下内容相同:

NEW BEAM
38
2440
WOOD
22
610
ITEM A
50
1220
我现在需要创建一个新的txt文件,如下所示:

PANNEL A
38
2440
(“NEW BEAM”  is “38” x “2440”)
(“WOOD”  is “22” x “610”)
(“ITEM A”  is “50” x “1220”)

我是如何使用VB.NET实现这一点的?

以下是我的做法:

Private Sub DoWork(ByVal inputFile As String, ByVal outputFile As String)
    '//The VB IDE confuses smart quotes with regular quotes so it gets hard to embed them in a string.
    '//Instead we'll embed them as raw characters
    Static LQ As Char = Chr(147)
    Static RQ As Char = Chr(148)

    '//Load our input file specifying that we want to read it and that we're willing to share it with other readers
    Using FSInput As New System.IO.FileStream(inputFile, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
        '//Bind a string-based reader to the stream. If you know the character encoding of the file you might want to specify that as the second paramter
        Using SR As New System.IO.StreamReader(FSInput, True)
            '//Create a stream to the output file specifying that we're going to write to it but other people can still read from it
            Using FSOutput As New System.IO.FileStream(outputFile, IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.Read)
                '//Create our output file using the UT8 encoding, this can be changed to something else if needed
                Using SW As New System.IO.StreamWriter(FSOutput, System.Text.Encoding.UTF8)
                    '//Read the first line
                    Dim curLine = SR.ReadLine()
                    '//Create a loop that uses the curLine variable as well as the next two lines.
                    '//This method won't fail if there's bad data but might produce erroneous output
                    Do While Not String.IsNullOrEmpty(curLine) '//Use IsNullOrEmpty because the last line might be a blank line
                        '//Write our line of text
                        SW.WriteLine("({0}{2}{1}  is {0}{3}{1} x {0}{4}{1})", LQ, RQ, curLine, SR.ReadLine(), SR.ReadLine())
                        '//Read the next line and send back to the top of the loop
                        curLine = SR.ReadLine()
                    Loop
                End Using
            End Using
        End Using
    End Using
End Sub
您可以通过以下方式调用此方法:

DoWork("C:\Input.txt", "C:\Output.txt")