プロが教えるわが家の防犯対策術!

こんにちは。質問させていただきます。
(Visual Basic 2010 エクスプレス)

下記のように書いたのですが、ファイルの内容どおりに読み込んでくれません。
ファイルの中身は

さささ,0,ししししししし
すすす,0,せせせせせせ
そそそ,0,たたたたた

となっているのですが、最初の一行を読み込み、しかも最初の一行を繰り返し2段目3段目の
テキストボックスに表示させてしまいます。
具体的には
さささ ししししししし
さささ ししししししし
さささ ししししししし
です。

本来は
さささ ししししししし
すすす せせせせせせ
そそそ たたたたた
と表示させたいのです。



Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Using reader As New System.IO.StreamReader("C:\csvtest\test.csv", System.Text.Encoding.GetEncoding("Shift-JIS"))

Dim Items() As String 'CSVの各項目を表す配列
Dim Line As String = reader.ReadLine 'CSVの一行

Do Until IsNothing(Line)



Items = Line.Split(",") '一行を, (カンマ)で区切って項目ごとに分解


With reader

TextBox1.Text = Items(0)
CheckBox1.CheckState = Items(1)
TextBox2.Text = Items(2)

Line = reader.ReadLine '次の行を読み込む。


TextBox3.Text = Items(0)
CheckBox1.CheckState = Items(1)
TextBox4.Text = Items(2)

Line = reader.ReadLine '次の行を読み込む。



TextBox5.Text = Items(0)
CheckBox1.CheckState = Items(1)
TextBox6.Text = Items(2)

Line = reader.ReadLine '次の行を読み込む。
.Close()

End With
Loop

End Using

End Sub


問題点がわかる方、よろしくおねがいします!

A 回答 (1件)

最初の一行を読んだときしかsplitしてないのが原因でしょう。


csv読むにはTextFieldParser使った方がだいぶラクですけどね。
http://msdn.microsoft.com/ja-jp/library/microsof …
    • good
    • 0
この回答へのお礼

おかげさまで出来ました!
具体的には
With reader
Items = Line.Split(",")

TextBox1.Text = Items(0)
CheckBox1.CheckState = Items(1)
TextBox2.Text = Items(2)

Line = reader.ReadLine '次の行を読み込む。

Items = Line.Split(",")

TextBox3.Text = Items(0)
CheckBox1.CheckState = Items(1)
TextBox4.Text = Items(2)

Line = reader.ReadLine '次の行を読み込む。

Items = Line.Split(",")

TextBox5.Text = Items(0)
CheckBox1.CheckState = Items(1)
TextBox6.Text = Items(2)

Line = reader.ReadLine '次の行を読み込む。
.Close()

End With

にしました。
教えていただいた
>csv読むにはTextFieldParser
の件につきましては、とりあえずメモをしておいて
後々の課題にさせていただきます。
(今はプログラムが正常に動くのを優先させたいので)

本当にありがとうございました。

お礼日時:2012/01/13 17:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!