Twitter apiデータを使用しており、ストリームの結果をテキストファイルに保存した後、データをパーサーアプリケーションに入力します。私が計画したのは大きなデータファイルだったので、エラーの可能性を回避するために個々の投稿を区切るために区切り文字]}を使用してコンテンツを読みましたか?バックアップ機能は、バッファを使用してデータを読み取り、個々の投稿に切り込むことでした。ただし、問題は、単一の投稿の場合、メモリ例外が発生することです。個々の投稿を見ると、必ずしも大きくは見えませんが、テキストには外国の文字やエンコードが含まれているため、メモリの例外が発生していると思います。正確にこれであるかどうかはまだわかりませんが、ここからいくつかの入力やアドバイスを得ると思いました...
myreader.TextFieldType = FileIO.FieldType.Delimited
myreader.SetDelimiters("]}}")
Dim currentRow As String()
Try
While Not myreader.EndOfData
Try
currentRow = myreader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
data = data + currentField
counter += 1
If counter = 1000 Then
Dim pt As New parsingUtilities
If Not data = "" Then
pt.getNodes(data)
counter = 0
End If
End If
Next
Catch ex As Exception
If ex.Message.Contains("MemoryException") Then
fileBKup()
End If
End Try
もう1つメモリ例外が発生したときは、別の投稿に分割しようとします。
Dim sampleResults() As String
Dim stringSplitter() As String = {"}}"}
' split the file content based on the closing entry tag
sampleResults = Nothing
Try
sampleResults = post.Split(stringSplitter, StringSplitOptions.RemoveEmptyEntries)
Catch ex As Exception
appLogs.constructLog(ex.Message.ToString, True, True)
moveErrorFiles(form1.infile)
Exit Sub
End Try