人生最悪の忘れ物

VBを用いて,CSVファイルから必要な数値のみを読み込みたいのですが,うまくいきません.

一行目を飛ばし,二行目以降から読み込んでいきたいのですが,可能でしょうか?

よろしくお願いします.

A 回答 (2件)

こんばんは




.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を使ってループしながら配列の項目を処理していく方法です。
「VB2010でCSVファイルの読み込み」の回答画像2
    • good
    • 1

可能ですが、どういう読込処理作ったのかな?



「LineInputしてSplitで列分割」をdoかwhileのループで廻すでしょ?
LineInputを1回実行して何もせずに次のLineInputからループさせる。

この回答への補足

回答ありがとうございます!

説明不足ですみません,私は

ReadLineというもので読み取ってからSplitし,
Do Until IsNothing(line)

Loop

という風にしています.LineInputの使い方がわからないのですが,ReadLineでやる方法と同じなのでしょうか?
よろしくお願いします.

補足日時:2014/01/17 14:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報