csv形式の文字列を配列変数に入れるには?

解決


ZiZi  2004-05-11 20:02:01  No: 113171  IP: [192.*.*.*]

「CSVファイル」のデータを配列変数に読み込むには Input関数がありますが
「CSV形式の文字列」(例 a,b,c,d,e,f,g)を配列変数に読み込むには
どうすればよいでしょうか?
イメージ的には下記のようなことをしたいのです。

Buf = a,b,c,d,e,f,g
Do While xxx
  Input( Buf, moji(i) ) 
Loop

として moji(1)にa、 moji(2)にb ... と代入したいのですが
Input関数は指定したファイル番号からの読込みしかできないので
何かスマートな方法はありますでしょうか?

編集 削除
魔界の仮面弁士  2004-05-11 20:06:42  No: 113172  IP: [192.*.*.*]

1行単位で読み込むなら、Line Input #ステートメントを使うと良いでしょう。
全体を一括して読み込むなら、TextStreamオブジェクトのReadAllメソッドなども利用できます。

編集 削除
ZiZi  2004-05-11 20:11:15  No: 113173  IP: [192.*.*.*]

補足です。
処理したいcsv形式の文字列は

aa,bbb,c,dddd,ee,fff,g, ... 

と不規則な文字数になっています。

編集 削除
ZiZi  2004-05-11 20:24:46  No: 113174  IP: [192.*.*.*]

魔界の仮面弁士さま
さっそくの返信ありがとうございます。
LineInputもTextStreamも読み込むことができるのはファイルからですよね?

ファイルからではなく、ユーザーが複数回 入力する文字列を
「,」で区切ってBufに溜め込んでおいて、入力が終了した時点で
配列変数に入れたいのですが、、

Input関数を使う前提でいったんファイルに保存してからでないと
うまく処理できないでしょうか?

編集 削除
ぶんた  2004-05-11 20:56:33  No: 113175  IP: [192.*.*.*]

Split関数で区切り文字を「,」にしてやればできます

編集 削除
ZiZi  2004-05-12 08:36:08  No: 113176  IP: [192.*.*.*]

ぶんた様
Split関数で出来ました。本当にありがとうございました!

P.S 迅速にご意見をいただけるこの場の皆様にも感謝すると同時に
自分の勉強不足を痛感しました。

編集 削除