miau's blog?

CSVの読み込み@VB6

仕事である関数のテストをしているのですが。
VB のフォームに TextBox が 30 個ほどちりばめられており、そこに値を入力してテストを行うことになってます。はっきり言ってかったるいです。

ということでテストドライバ製作者に「いちいち入力するの面倒だから CSV から読み込めない?」と尋ねてみると「うーん・・・僕もそう思ったんだけどね。○○さんが『そこまでしなくても』いいってさ。」との返答が。

あああ。また上の人がいいかげんな指示を。
それくらいのコーディング、VB でならすぐできるのに。

と思ったので本当にすぐできるのか試しに書いてみた。

要件:
・フォームに TextBox のコントロール配列がある
・CSV ファイルを読み込み、それぞれの TextBox に値をセットしたい

とりあえず1行分読み込みのサンプルということで。

Dim Params() As String
Dim i As Integer

ReDim Params(0 To Text1.Count - 1)

Open "test.csv" For Input As #1
Input #1, Params(0), Params(1), Params(2)
Close #1

For i = 0 To Text1.Count - 1
Text1(i) = Params(i)
Next

まず思いつく単純な方法。でもこれだとコントロール配列の Count が拡張された場合に対応できないし、30 個も並べるのは面倒。

ということで、こんな感じになるかな。

Dim Params As Variant
Dim Str As String
Dim i As Integer

Open "test.csv" For Input As #1
Line Input #1, Str
Close #1

Params = Split(Str, ",", -1)

For i = 0 To Text1.Count - 1
Text1(i) = Params(i)
Next

これだとダブルクォートとかカンマの処理がうまくできないけど、場合によってはこれでも十分なコードではないかと。タブ区切りとかになっても対応できるし。

ま、CSV 読み込みのサンプルコードなんてたくさんありそうなんで、そっち使ったほうがいいんでしょうけど。

posted at 03:02:08 on 2004-04-29 by miau - Category: VB6 No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

No comments yet

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。