C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 103 を表示中)
■61493 / )  Re[4]: CSVデータの一部分のみ読み込む
□投稿者/ JRY (9回)-(2011/08/16(Tue) 20:23:25)
No61477 (やんまー さん) に返信
> ■No61476 (JRY さん) に返信
>>■No61471 (魔界の仮面弁士 さん) に返信
>
>>>>(0,4)のように、縦と横を指定できるのが理想です。
> >>面倒なら、全データを DataTable か二次元配列に取り込んでおけば、
> >>行・列を指定してデータを取り出す事も容易になるかと思います。
>
>
> 魔界の仮面弁士 さんがおっしゃっているように一度二次元配列に入れれば
> 変数名(0)(4)という感じで取れますよ。
>
>     Dim csvRecords As New System.Collections.ArrayList()
>     Dim tfp As New FileIO.TextFieldParser(filename, _
>       System.Text.Encoding.UTF8 )
>     '区切り文字を,とする
>     tfp.Delimiters = New String() {","}
>
>     While Not tfp.EndOfData
>       'フィールドを読み込む
>       Dim fields As String() = tfp.ReadFields()
>       '保存
>       csvRecords.Add(fields)
>     End While
>     
>     '後始末
>     tfp.Close()
>
>
> ーーー
> こんなふうにすれば
> csvRecords(0)(4)
> に値が入っていると思います。
>

ありがとうございました。
次のように編集しましたが、エラーが発生しました。
Dim wc As WebClient = New WebClient()

wc.DownloadFile( _
csvurl, _
savedir)

Dim csvRecords As New System.Collections.ArrayList()
Dim tfp As New FileIO.TextFieldParser("test.csv", _
System.Text.Encoding.UTF8)
'区切り文字を,とする
tfp.Delimiters = New String() {","}

While Not tfp.EndOfData
'フィールドを読み込む
Dim fields As String() = tfp.ReadFields()
'保存
csvRecords.Add(fields)
Label3.Text = csvRecords(1)(0)
End While
'後始末
tfp.Close()

>Label3.Text = csvRecords(1)(0)
の部分で、
System.ArgumentOutOfRangeException はハンドルされませんでした。
Message=インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメータ名: index
というエラーが出ました。
1,0の部分には、ちゃんと値が入っています。
返信 編集キー/


管理者用

- Child Tree -