アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。質問させていただきます。
(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で質問しましょう!