如何在VB.NET中更新现有的文本文件

时间:2016-01-20 15:24:46

标签: vb.net

我有一个包含16,328,530行的文本文件。每行长830字节(828字节数据+ 2字节,用于crlf)。所以文件大小是13 Gig。

我希望能够逐行读取文件,并且满足某个条件以更新数据行中的数据,然后将数据重写到现有文件中。

有没有办法在VB.NET中执行此操作?

由于

1 个答案:

答案 0 :(得分:0)

所以现在这里是示例代码....我在最后几分钟测试了这个(在一个空的Sub Main()

Module MainModule

    <VBFixedString(830)> Public recordBuffer As String

    Sub Main()

        Dim fn As Integer = FreeFile()

        FileOpen(fn, "c:\temp\test.data", OpenMode.Random, OpenAccess.ReadWrite, OpenShare.Shared, 830)

        For i As Integer = 100000 To 100020
            ' This ensures the buffer is of correct size, even if file is shorter (= new records will be added)
            recordBuffer = Space(830) 
            FileGet(fn, recordBuffer, i, True)
            recordBuffer = recordBuffer.ToUpper()
            ' Here I cut away all bad things that could happen to a string :-/
            FilePut(fn, recordBuffer.Substr(0, 830), i, True)
        Next i

        FileClose(fn)

   End Sub

End Module

我用一个文件测试了它,在它的不同部分。如果您将记录放在之前没有记录的位置(因此在FileGet之前将空格(830)赋值给recordBuffer),文件将被扩展