我將一個csv的不同部分分配給一個數組,特別是每行有2個,並且它們不是很大的值,而是它們只是經過小數。有時我可以有500行的列表,有時可以有多達100,000行。當它達到約4,000以上時,代碼開始變得非常緩慢。我有一個顯示進度的進度條,所以我可以看到它正在以指數級的速度慢慢分配值。這裏是我的代碼:爲多個值賦值給數組獲取緩慢
$aArray1 = FileReadToArray("\\miami\edx\requests\"&$FileName&"\Data\GIS\Meters.csv")
For $i = 2 to Ubound($aArray1)
\t $line = FileReadLine("\\miami\edx\requests\"&$FileName&"\Data\GIS\Meters.csv", $i)
$row_array = StringSplit($line,",")
\t \t $lattitude[$i] = $row_array[Ubound($row_array)-3]
\t \t $longitude[$i] = $row_array[Ubound($row_array)-2]
\t GUICtrlSetData($progress1, ($i/ubound($aArray1))*100)
\t GUICtrlSetData($Label2,Round(($i/ubound($aArray1))*100,1)&"% Complete")
Next
沒有人有任何想法,爲什麼這可能是獲得這麼慢?也許我每次都在重複不必要的步驟,這會減慢速度。我無法弄清楚。提前致謝。
你爲什麼要讀整個文件到一個數組,然後通過再次讀取文件中的行線。這看起來會讓它變慢。爲什麼不使用你在頂部創建的相同數組來做你所需要的? –
@巴拿馬傑克我在開始閱讀它以獲得上限。這用於進度條。我不明白爲什麼這會真的放慢速度,因爲它是變慢的for循環。 –