- 締切済み
CSVファイルを読み込む
.net VB 2010 初心者です。VB 6.0は、少々分かります。 よろしくお願い致します。 .net VB 2010を使用して、CSVファイルを読み込みたいのです。 列は固定、行は可変です。 配列で、buf(行,列)のように読み込みたいのです。 これだと、10行、3列目と実際とイメージが合致するからです。 これは、どのように実現可能か教えてください。 buf(10,3)ではなく、もっと良い方法があるのであれば、そちらをよろしくお願い致します。 列は、1列目:No.、2列目:フルネーム、3列目:略語、4列目:更新日 となっています。 なので、1行目のフルネームの取り出し、2行目の略語の取り出しでもOKです。 どうぞよろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- bin-chan
- ベストアンサー率33% (1403/4213)
CSVファイルをシーケンシャルファイルで読んで、カンマで分解。 VB6も2010でも動くはず dim strBuffer as string Dim nFile as integer Dim strArray() as string Dim nArray as long nFile = freefile() open "C:¥hogehoge.csv" for input as #nfile While not(eof(nfile)) Line Input #nFile, strBuffer Strarray=split(strbuffer,",") narray=ubound(strArray()) if nArray> 3 Then debug.print strarray(0), strarray(2)) ’ここでデータを利用 end if wend Close タブレット手書き入力なので文字の大小不統一はお許し下さい
- akayoroshi
- ベストアンサー率50% (46/91)
C#でCSVファイルを取り込む処理を扱ったことがあります。 そのときは、この処理のためにCSVクラスを自作しました。 String型の2次元配列をフィールドとして、ファイル名を受け取るコンストラクターで、TextFieldParserを使ってデータを配列に読み込みました。 配列へのアクセスにはインデクサを使いました。 VBでも同様のことができるでしょう。
お礼
ありがとうございます。 コンストラクター? インデクサ? という、感じですが、1つ1つ調べていきます。
補足
ありがとうございます。 下記で動きましたが・・・ strArrayには、カレント行が1行読み込まれます。 私のイメージとしては、strArrayは二次元配列でstrArray(行,列)としたいのです。 行は可変、列は3(0~3) または、strArray(2).フルネーム (3行目のフルネーム) でデータを取り出したいと考えています。 CSVファイルは、小さなサイズなので全体を読み込んでプログラム中に持っていたいのです。 何か良い方法がありましたら、ご教授の程よろしくお願い致します。 Sub Main() Dim strBuffer As String = "" Dim nFile As Integer = 0 Dim strArray() As String = Nothing Dim nArray As Long = 0 nFile = FreeFile() FileOpen(nFile, "C:\test\ItemConf.csv", OpenMode.Input) While Not (EOF(nFile)) strBuffer = LineInput(nFile) strArray = Split(strBuffer, ",") nArray = UBound(strArray) If nArray > 3 Then Debug.Print(strArray(0), strArray(2)) End If End While FileClose() End Sub