2012-07-10 106 views
-1
Do While inputstream.Peek <> -1 
    newstr = inputstream.ReadLine().Split(",") 
    item1 = newstr(0) 
    item2 = newstr(1) 
    item3 = newstr(2) 
    item4 = newstr(3) 
    item20 = newstr(19) 
    Me.ListView1.Items.Add(item1) 
    Me.ListView1.Items.Item(ListView1.Items.Count - 1).SubItems.Add(item2) 
    Me.ListView1.Items.Item(ListView1.Items.Count - 1).SubItems.Add(item3) 
    Me.ListView1.Items.Item(ListView1.Items.Count - 1).SubItems.Add(item4) 
    Me.ListView1.Items.Item(ListView1.Items.Count - 1).SubItems.Add(item20) 
Loop 
inputstream.Close() 

我得到一個索引越界錯誤,CSV文件是一個winamp庫。有人有什麼主意嗎?解析csv文件時,索引超出了數組的邊界

+2

爲什麼標記爲** php **? – deefour 2012-07-10 01:22:20

+0

的意思是將其標記爲vb.net,2.25am lol;) – Guernica 2012-07-10 01:26:07

回答

0

我猜你的歌曲標題中有一個包含逗號。沒有CSV標準,但這個網站接近:creativyst

通常包含逗號的元素被引號括起來(十進制中的ASCII字符34)。

0

這只是另一個猜測,但也許你的歌曲或專輯名稱中包含一個換行符。我懷疑額外的逗號會導致索引越界異常(因爲您最終會得到更多的「列」,而不是更少),但意外的換行肯定會。您需要確保引號之間的文本被視爲單個列,否則您將遇到嚴重問題。

我會推薦使用解析器而不是試圖自己拆分文件。如果您使用的是VB.NET,那麼我認爲JET OLE DB應該對您可用。

請參閱http://www.codeproject.com/Articles/27802/Using-OleDb-to-Import-Text-Files-tab-CSV-custom

+0

似乎太麻煩了,我將它導出到XML,而不是用PHP讀取它,我有一個vb.net和PHP的選擇。謝謝 – Guernica 2012-07-10 02:40:22

相關問題