特定の値を置き換える必要がある大きなcsvファイル(それぞれ1.5GB)がいくつかあります。私が現在使用している方法はひどく遅く、これをスピードアップする方法があるはずだとかなり確信していますが、私は自分が何をすべきかを知るのに十分な経験がありません。これは私の最初の投稿であり、関連するものを見つけるために検索しようとしましたが、何も見つかりませんでした。どんな助けでもいただければ幸いです。
私の他の考えは、ファイルをチャンクに分割して、すべてをメモリに読み込み、そこですべての置換を行ってから、統合ファイルに出力できるようにすることです。私はこれを試しましたが、実際には現在の方法よりも遅く見えました。
ありがとう!
Sub Main()
Dim fName As String = "2009.csv"
Dim wrtFile As String = "2009.1.csv"
Dim lRead
Dim lwrite As String
Dim strRead As New System.IO.StreamReader(fName)
Dim strWrite As New System.IO.StreamWriter(wrtFile)
Dim bulkWrite As String
bulkWrite = ""
Do While strRead.Peek <> -1
lRead = Split(strRead.ReadLine(), ",")
If lRead(9) = "5MM+" Then lRead(9) = "5000000"
If lRead(9) = "1MM+" Then lRead(9) = "1000000"
lwrite = ""
For i = LBound(lRead) To UBound(lRead)
lwrite = lwrite & lRead(i) & ","
Next
strWrite.WriteLine(lwrite)
Loop
strRead.Close()
strWrite.Close()
End Sub