質問者
数値データの読み込みについて

質問
-
はじめまして、お世話になります。KOZHOです。
VB6で、テキストファイルの数値データを読み込む下記のようなコードがあります。
-----------------------------------------------------
Open FileToOpen For Input As #1
INPUT #1 A1,B1,C1
-----------------------------------------------------
これをVisual Basic 2005にポーティングしたいのですが、下記のような問題があり、簡単に移行する方法がわかりません。
1) 読み込み対象のデータは、スペース区切りのデータであるが、スペースの数が決まっていない。たとえば
1.0<space>2.0<space>3.0<改行>
4.0<space><space>5.0<spaca>6.0<改行>
のようになっています。
2)VB2005のInput関数は複数の変数が読み込めない
1行ごとにstringで読み込み、変数を分離するコードを書けば解決するとは思うのですが、もっと簡単に解決する方法はないかと思い、何か良い案をお教え願えれば幸いです。
すべての返信
-
ひろえむ さんからの引用 Spaceの数が固定ならSplit関数で配列にしてしまうという手もありますが、可変なら結局判定が必要ですからそのほうが早いと思いますよ。
連続した区切り文字 (今回の場合は space) を 1つの区切りとみなす、 という分割方法が、 .NET Framework 2.0 の Split メソッドではサポートされています。
→ MSDN ライブラリ: .NET Framework クラス ライブラリ: String.Split メソッド (Char[], StringSplitOptions)
これで上手くできないかな?KOZHO さんからの引用 2)VB2005のInput関数は複数の変数が読み込めない
その代わり、 なのでしょうか。 Microsoft.VisualBasic.FileIO 名前空間に、 .NET Framework 2.0 から TextFieldParser クラスなどが用意されています。
→ MSDN ライブラリ: Visual Basic 言語リファレンス: TextFieldParser オブジェクト
こちらには残念ながら、 連続した区切り文字を 1つの区切りとみなしてくれる機能は、 無さそうです。