2012-07-10 6 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

+0

은 vb.net, 2.25am LOL로 태그를 붙이려고했습니다.) – Guernica

답변

0

귀하의 노래 제목 중 하나에 쉼표가있는 것으로 추측됩니다. CSV 표준은 없지만이 사이트는 가까운 곳에 있습니다 : creativyst.

쉼표가 포함 된 요소는 종종 쉼표 (ASCII 10 진수 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

관련 문제