DOBON.NET DOBON.NETプログラミング掲示板過去ログ

CSV読み込みについて

環境/言語:[OS : Windows XP / 言語 : Visual Basic .NET / .NET Framework : 3.5]
分類:[.NET]

【解決したい問題】

TextFieldParser を使って CSV を読み込んでいます

Dim RowString As String()
Dim FieldA AS String
Dim FieldB AS String
Dim FieldC AS String

While Not textParser.EndOfData
 RowString = textParser.ReadFields()
FieldA = RowString(0)
FieldB = RowString(1)
FieldC = RowString(2)※

データが
A,B,C
は、良いのですが
A,B,
があった場合※でエラーになります

回避の良い方法がありますでしょうか?
  • 題名: Re[1]: CSV読み込みについて
  • 著者: shu
  • 日時: 2011/09/08 14:44:51
  • ID: 29009
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No29007に返信(まうすさんの記事)

> FieldA = RowString(0)
> FieldB = RowString(1)
> FieldC = RowString(2)※

FieldA = if(RowString.Length<1,"",RowString(0))
FieldB = if(RowString.Length<2,"",RowString(1))
FieldC = if(RowString.Length<3,"",RowString(2))
if関数が使えない場合、if文にする。
■No29007に返信(まうすさんの記事)
> A,B,
> があった場合※でエラーになります
Delimiters を カンマにする設定だけでテストしましたが、
エラーにならなかったです。
RowString(2)は長さ0の文字列(String.Empty)と同等で
問題なく取得できました。
最終行に改行コードもありません。
A,B,[EOF]
といったテストファイルです。

行末にカンマがある以上、最後の要素も取得されるべきで、
質問文が間違っていないなら、他の原因という可能性
もあるのかもしれません。
エラーメッセージや、その時の配列の内容をちゃんと確認して
質問文に明記すべきでは?
貴重なご意見ありがとうございました

shu様の方法で回避出来ました

ご報告まで
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板