テキストファイルから,以下のような並びの数値データを
入力したいのですが,うまく読めません.アドバイス,
よろしくお願い致します.(VB6.0を使用しています)
1
DATA(1,1) DATA(1,2) DATA(1,3), ..., DATA(1,n)
2
DATA(2,1) DATA(2,2) DATA(2,3), ..., DATA(2,n)
ちなみに,私の作成したコードは以下の通りです.
FOR I = 1 TO m
INPUT #1, NO(I)
FOR J = 1 TO n
INPUT #1, DATA(I,J)
NEXT J
NEXT I
ここで,mは行数の半分,また入力用テキストファイルの
番号は1です.
1行あたりのデータ数が少ない場合にはうまくいきますが,
数千個の場合は読み込めません.宣言した配列の大きさに
ミスはありませんし,メモリ容量にも問題はありません.
ただし,「ファイルにこれ以上データがありません。」という
実行時エラー'62'が出ます.恐らく,データの総数とFORループの
繰り返しの数が一致していないからだと思います.
お手数をおかけしますが,解決方法をご存知の方,教えてください.
コードからは問題が見受けられませんので
データの方もチェックした方がいいかもしれません。
読み込んだ内容をDebug.Printで表示させればどこで
ずれたのか分かると思います。
インプットってそもそも行単位で読み込みじゃなかったでしたっけ?
読み込んだ内容を第二引数?に格納するとかそんなんだった気がするのですが・・・
テキストファイルからただ読み込むのであれば
インプットで行を読み込む
区切り文字がはっきりしてるなら、Split関数で分割し
配列項目にぶち込む
UBOUND関数で配列などを取得すればループでまわせる
のようなことをすれば2次元配列でもなんでも使ってもらえれば
できるんじゃないかな?
何回ループしているか、そのインプットで何を読んでいるのかを
まずはDebug.Printしてください
そうすればなぜデータがないエラーが出るかわかると思います
多分10行で1列と10列のデータが交互に入っているデータだとしたら
10*10*1で100行分ループしているように思えるのですが・・・
当然11回目からエラーになります・・・
10列*5行+1列*5行で55回のループですね・・・
ツイート | ![]() |