インデックスを終了し、表示する特定の顧客情報を取得する必要があります。ファイルの内容の特定の部分を読む
Dim oFile As New FileInfo(sFileName)
Dim sFileContent As String = oFile.OpenText().ReadToEnd()
Dim iStartIndex As Integer = sFileContent.IndexOf(roNotification.StartByte)
Dim iEndIndex As Integer = sFileContent.IndexOf(roNotification.EndByte, iStartIndex)
Dim sCustomerInfo As String = sFileContent.Substring(iStartIndex + roNotification.StartByte.Length - 1, iEndIndex)
Nothing much tho。しかし、それはファイルを読み取り、その巨大なファイルをsFileContent
変数に入れます。私はこの方法がどれほど効率的であるかはわかりません(MemoryStreamよりも悪いようです)。
インデックス文字列は1文字以上にすることができます。
編集:ファイルに関する
詳細情報は、ファイルには、1つの巨大なラインが含まれており、ラインというすべての情報が含まれています。本当に機密データがあるので、それを読む以外はそのファイルに触れられません。
私は開始インデックスと最初に出会った終了インデックスの間の文字列を探しています。
Using reader = file.OpenText()
Dim line As String
While True
line = reader.ReadLine()
If ReferenceEquals(Line, Nothing) Then Exit While
'Parse the line and figure out what to do with it
End While
End Using
この方法では、一度にメモリ内に複数のラインを持っていることは決してないだろう:
あなたはそれが "巨人" のファイルだと言いますか?ここでパフォーマンスはどれくらい重要ですか?それは本当にあなたが探している文字列 "Starting Index"ですか?ファイルが行に分割されているのか、それとも他の何かが役に立つのですか? –
私の編集@Jon Skeetを参照してください。ありがとう – Tarik
['MemoryMappedFile'](http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx#Y2639)は、考慮するオプションかもしれません。あなたがデータを探している場所で良いアイデア。 – vcsjones