我有一个包含16,328,530行的文本文件。每行长830字节(828字节数据+ 2字节,用于crlf)。所以文件大小是13 Gig。
我希望能够逐行读取文件,并且满足某个条件以更新数据行中的数据,然后将数据重写到现有文件中。
有没有办法在VB.NET中执行此操作?
由于
答案 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),文件将被扩展