-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 库。有人有什么主意吗?

4

2 回答 2

0

我猜你的一首歌曲标题包含一个逗号。没有 CSV 标准,但这个网站很接近:creativyst

包含逗号的元素通常用引号括起来(十进制的 ASCII 字符 34)。

于 2012-07-10T01:42:37.790 回答
0

这只是另一种猜测,但也许您的歌曲或专辑标题中包含换行符。我怀疑额外的逗号会导致索引越界异常(因为您最终会得到更多“列”,而不是更少),但意外的换行符肯定会。您需要确保引号之间的文本被视为单列,否则您将遇到严重问题。

我建议使用解析器,而不是尝试自己拆分文件。如果您使用的是 VB.NET,那么我认为您应该可以使用 JET OLE DB。

请参阅http://www.codeproject.com/Articles/27802/Using-OleDb-to-Import-Text-Files-tab-CSV-custom

于 2012-07-10T01:47:54.740 回答