|
分類:[.NET 全般]
windowsXP SP2 Visual Basic 2008 Express Edition
6列・28行のCSVファイルをカンマでスプリットして読み込み、 列ごとにnull以外は変数へ代入しています。 ソースは以下です。
Using Reader As New IO.StreamReader(FileName, System.Text.Encoding.GetEncoding("Shift-JIS")) Dim cb1 As String = "" Dim cb2 As String = "" Dim cb3 As String = "" Dim cb4 As String = "" Dim cb5 As String = "" Dim cb6 As String = "" Dim line As String = Reader.ReadLine() '1行目はヘッダーのため空打ち line = Reader.ReadLine() Do Until line Is Nothing Dim txArr(5) As String txArr = line.Split(",") If txArr(0) <> "" Then cb1 += txArr(0) & Chr(13) & Chr(10) End If If txArr(1) <> "" Then cb2 += txArr(1) & Chr(13) & Chr(10) End If If txArr(2) <> "" Then cb3 += txArr(2) & Chr(13) & Chr(10) End If If txArr(3) <> "" Then cb4 += txArr(3) & Chr(13) & Chr(10) End If If txArr(4) <> "" Then cb5 += txArr(4) & Chr(13) & Chr(10) End If If txArr(5) <> "" Then cb6 += txArr(5) & Chr(13) & Chr(10) End If 'MsgBox(cb1 + cb2 + cb3 + cb4 + cb5 + cb6) line = Reader.ReadLine() Loop End Using
実行すると100回目の代入のとき(うまく表現できませんが17回目のループの 3列目を代入するとき)「インデックスが配列の境界外です」のエラーが 出てしまいます。 配列の使いまわしがいけないのかと思いループの中で宣言するようにしましたが それとも違うようです。
教えて下さい。 よろしくお願い致します。
|