miau's blog?

| 1 |

2004年 4月 29日 (木曜日)

CSVの読み込み@VB6

- VB6 on miau's blog?
仕事である関数のテストをしているのですが。
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 読み込みのサンプルコードなんてたくさんありそうなんで、そっち使ったほうがいいんでしょうけど。
03:02:08 - miau - No comments - No Trackbacks - Permalink
| 1 |