0

我正在尝试使用VB.NET来处理一个非常大的纯文本文件(2 GB)。它是一个数据库,具有 . 的字段分隔符SOH和 . 的记录分隔符STX

我想分离文件的字段和记录。

我通常会读取文本文件的每一行,然后使用 split 函数将字段分开。我不能使用这种方法,因为每行并不总是有分隔符。

有什么方法可以读取文件直到STX找到(而不是一次一行)?

4

2 回答 2

1

.NET 中没有“Read until string 'foo'”,您需要打开 aFileStream并将块读取FileStream.Read到临时缓冲区中,然后扫描该缓冲区中的令牌。

于 2012-04-12T20:15:51.137 回答
0

我会查看 TextFieldParser 类,看看它是否可以完成任务:

http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx

如果不是,我会尝试免费的 FileHelpers 库:

http://www.filehelpers.com/

如果这些都不能完成这项工作,那么正如 Albin 所提到的,那么你就只能使用缓冲区读取良好的老式文件流了。

于 2012-04-13T05:38:16.917 回答