0

VB.NETを使用して、非常に大きなプレーンテキストファイル(2 GB)を処理しようとしています。これはデータベースであり、のフィールド区切り文字SOHとのレコード区切り文字がありSTXます。

ファイルのフィールドとレコードを分離したい。

私は通常、テキストファイルの各行を読み取り、split関数を使用してフィールドを区切ります。すべての行に常に区切り文字があるとは限らないため、このアプローチを使用することはできません。

STX(一度に1行ではなく)見つかるまでファイルを読み取る方法はありますか?

4

2 に答える 2

1

.NETには「文字列'foo'まで読み取る」はありません。一時バッファにFileStreamチャンクを開いて読み取り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 に答える