我有一個程序產生大量的數據,它將逐行寫入一個csv文件(隨着數據的創建)。如果我能夠在Excel中打開csv文件,它將大約有10億個單元格(75,000 * 14,600)。我每次嘗試訪問它時都會引發System.OutOfMemoryException異常(或者甚至創建一個這樣大小的數組)。如果任何人有任何想法如何可以將數據帶入vb.net,所以我可以做一些簡單的操作(所有的數據需要立即可用),那麼我會嘗試你有每個想法。如何在vb.net中處理一個非常大的數組
我已經看過增加使用的RAM的數量,但其他文章/文章說這將在10億分之前短暫運行。在這裏沒有任何問題,假設它不超過幾天/每週我可以處理它(我只會每年運行一次或兩次)。如果你不知道這麼做,我能想到的唯一的其他解決方案就是將excel中的列數增加到75,000(如果可能的話 - 不能用其他方式寫數據),或者我猜想如果有另一種語言可以處理這個問題?
目前它在一開始失敗:
Dim bigmatrix(75000, 14600) As Double
非常感謝, 弗雷澤:)
爲什麼你說所有的數據必須一次可用?這裏最好的辦法就是盡你所能地對這個陳述進行質疑。 :-) – 2012-08-16 05:34:51
Jason,發生什麼事是我將數據逐行寫入文件。然後我需要數據轉置(即列到行等)。沒有全部日期,我看不到任何合理的方式。如果你能那樣做會很棒! :) – FraserOfSmeg 2012-08-16 17:23:27
如果你只是想轉換一個巨大的CSV,我會做的就是從概念上將數組分成1000 x 1,000個大塊,即一次讀取一千行,計算這個轉置,並將每個塊寫入文件。然後你可以做一個合併通行證,你在這些塊中讀取(以轉置的形式)並流出最終文件。 – 2012-08-16 19:32:01