-1

ときどき、約 25 MB の Oracle Datapump SQLFILE (プレーン テキスト) を調べて、いくつかの主要なテキスト文字列を探す必要があります。私は現在、UltraEdit のいくつかの便利な機能を使用しているため、それほど悪くはありません。しかし、UltraEdit を持っておらず、適切な値を見つけるための Reg Expressions に慣れていないユーザーが何人かいます。

2 つのコレクションを作成し、特定の RegEx に一致する行だけをそれぞれに追加したい場合、どこから始めればよいですか? ファイル内を移動するには、プレーンな StreamReader と StreamReader.ReadLine() を使用する必要がありますか? または、ファイルのサイズは別のオプションを示唆していますか?

最終的な結果として、コレクションの内容が画面または新しいテキスト ファイルに出力されますが、その詳細についてはまだあまり心配していません。

できる限り一般的または具体的にしてください。私は、自分でできる詳細を記入することに免疫はありません.

4

2 に答える 2

2

.NET Framework 4 以降でFile.ReadLinesは、 を返すメソッドを使用できるため、IEnumerable<string>ファイル全体をメモリに保持しません。

var lines = File.ReadLines(path).Where(s => myRegex.IsMatch(s));
于 2012-12-03T16:44:23.493 に答える
0

ファイル内を移動するには、プレーンな StreamReader と StreamReader.ReadLine() を使用する必要がありますか? または、ファイルのサイズは別のオプションを示唆していますか?

それが私がとるアプローチです。ストリームを使用してもファイル全体がメモリにロードされないため、大きなファイルに最適です。

各行について、一致するかどうかをテストし、その行を対応するリストにコピーできます。または、データが多すぎることが懸念される場合は、各行を 2 つの出力ファイルのいずれかにコピーします (これもストリームを使用します)。

于 2012-12-03T16:35:40.993 に答える