- 締切済み
VB2010でCSVファイルの読み込み
VBを用いて,CSVファイルから必要な数値のみを読み込みたいのですが,うまくいきません. 一行目を飛ばし,二行目以降から読み込んでいきたいのですが,可能でしょうか? よろしくお願いします.
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 田中 裕之(@bybalsendercase)
- ベストアンサー率88% (56/63)
こんばんは .NET VBでCSVファイルの処理をする場合はReadLineとSplitはコンビで使用することが多いです。 Do Untilは基本的なループですので、今回はReadLineとSplit、Do Untilでサンプルを作成しました。 >一行目を飛ばし line = reader.ReadLine を一行いれて何もしなければ、やり過ごせます(一行とばし) サンプルのcsvファイルの内容は 一行目,100 二行目,200 三行目,300 四行目,400 五行目,500 にしてます。 Public Class Form1 Private Sub f() Handles MyClass.Shown Dim reader As New IO.StreamReader("C:\test\test.txt", System.Text.Encoding.GetEncoding("shift-jis")) Dim line As String 'ファイルの一行 Dim itm() As String '行の項目の配列 line = reader.ReadLine '一行読んで何もしない line = reader.ReadLine '次の一行を読む Do Until IsNothing(line) 'lineがなくなるまでループ itm = line.Split(",") 'カンマで区切る 'ListBoxに表示 ListBox1.Items.Add(itm(0) & "は" & itm(1)) line = reader.ReadLine '次の一行を読む Loop reader.Close() End Sub End Class ReadAllLinesを使うと配列になりますので簡単ですが、基本はReadLineを使ってループしながら配列の項目を処理していく方法です。
- bin-chan
- ベストアンサー率33% (1403/4213)
可能ですが、どういう読込処理作ったのかな? 「LineInputしてSplitで列分割」をdoかwhileのループで廻すでしょ? LineInputを1回実行して何もせずに次のLineInputからループさせる。
補足
回答ありがとうございます! 説明不足ですみません,私は ReadLineというもので読み取ってからSplitし, Do Until IsNothing(line) ~ Loop という風にしています.LineInputの使い方がわからないのですが,ReadLineでやる方法と同じなのでしょうか? よろしくお願いします.