Vb.Netを利用して 可変長(String,Int,Longの混合)のcsvファイルを読み込む事は可能でしょうか.



dim buf(10000) as variant
dim bufs as string


INPUT #1,buf(1),buf(2),~,buf(10000) のような非現実的な方法でなく

Line input #1,bufs のように場当たり的な方法でないなにか良い手はないでしょうか??

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/05/09 19:24:14
  • 終了:2008/05/15 09:30:32

回答(4件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/05/09 19:32:48

ポイント34pt

「可変長のCSVファイル」という意味がよく分からないのですが、カンマで区切られた要素の数が不定ということでしょうか?


であれば、"Line input #1,bufs" で bufs に1行を読み込んだ後、split関数で要素に分割してはどうでしょうか。


参考サイト

id:jyarisan

要素の数は、不定です。

やはり、一度STRINGに読み込みしかないのでしょうか..

2008/05/09 19:35:31
id:ken33jp No.2

ken33jp回答回数928ベストアンサー獲得回数132008/05/09 20:38:43

ポイント9pt

>やはり、一度STRINGに読み込みしかないのでしょうか

YES

そのほうが早いと思いますよ

1行ずつ読み込んで、splitで分割

http://q.hatena.ne.jp/answer

id:mintan No.3

mintan回答回数29ベストアンサー獲得回数22008/05/10 14:45:25

ポイント26pt

CSV解析に特殊な条件がいる等でなく、.NetFramework2.0以上を利用されているなら

TextFieldParserクラスを利用するのが便利です。

各種エンコード(日本語)対応。

データ中のダブルクォート、カンマ、空白の処理方法もオプションで指定できます。

結果はString配列で返ってきますので、値やインデックスを見て各データ型へ変換処理するとよいと思います。

使用サンプル

id:todo36 No.4

todo36回答回数34ベストアンサー獲得回数52008/05/10 16:13:43

ポイント25pt

文字列がダブルクオーテーションで囲まれていたりするのであれば、

TextFieldParserを使うのが吉(ただしVB2005以上)

http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvpar...

  • id:jyarisan


    1,"A","C","D",1
    1,1,1,"A","B","ZZZ",1,1
    "A","B","FF"

    最大で 10000ぐらい要素があると思ってください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません