使用VB.NET替换固定长度文件中的范围

时间:2014-06-19 02:18:57

标签: vb.net visual-studio-2013

寻找有关如何读取输入文件的一些指导,该文件始终是固定长度为CR / LF,固定长度为200个字符,并替换位置10 - 15.

我正在使用StreamReader成功读取输入文件,但是正在努力将新文件与我从文本框中获取的替换字符进行输出。

任何见解都将受到赞赏。

更新了代码尝试..我用它来读取/写入分隔文件,其中我附加了一个值但不确定在while语句中使用的方法来替换字符10 - 15.

Dim sw As New IO.StreamWriter(tbNewSSF.Text)

Dim sr As IO.StreamReader = New IO.StreamReader(IO.File.Open(tbSelectedSSF.Text, IO.FileMode.Open, IO.FileAccess.ReadWrite, IO.FileShare.None))

While Not sr.EndOfStream

End While

sw.Flush()
sw.Dispose()
sw.Close()

sr.Dispose()
sr.Close()

2 个答案:

答案 0 :(得分:1)

你可以使用.ReadLine读取一行到一个字符串(由cr / lf分隔),然后使用标准的字符串操作函数来拉出你需要的那个字符串部分并用它重建它你的替代品。阅读完行并编辑后,您可以使用单独的编写器立即将其写入新文件。

答案 1 :(得分:1)

可能更容易使用File.ReadLines来读取文件。在处理一次性用品时,您也应该更喜欢Using

现在不在Visual Studio前面,但是这样的事情(假定为Option Infer On)......

Using out = New StreamWriter(tbNewSSF.Text)
    For Each line In File.ReadLines(tbSelectedSSF.Text)
        out.WriteLine(
            "{0}{1}{2}",
            line.Substring(0, 9),
            replacementString,
            line.Substring(15)
        )
    Next
End Using