ファイルからデータを読み取る
SRCヘルプのサンプルは少々実用的でないので書き足し。
ファイルの内容を全部参照(取得)する
辞典インクルードなどで設定ファイルを読み込むときに使います。
SRCヘルプ内LineReadコマンドのサンプルでは先頭から三行データを読み込んでいましたが、こちらではWhileループを用いてファイルを最初から最後まで全部読み込みます。
サンプル
// 一時的に使うものは全てローカル変数にしましょう Local fp filepath data // 参照するファイルまでのパスを指定 filepath = "Lib\辞書インクル\パイロットデータ.dat" // ファイルを開く Open filepath For 入力 As fp // ファイルポインタがEOF(End Of File)に達するまでループ // こうすることで、ファイルを全部参照しきったら自動でループから抜けてくれます Do While (EOF(fp) = 0) // ファイルから一行取り出し、dataに格納 // LineReadは実行されるたびにfpを更新してくれるので、特に操作をしなくても次の行を参照できます LineRead fp data Loop // ファイルを閉じる // これをしないとファイル破損の原因に Close fp
応用例
応用として、LineReadを複数記述することで、1ループにつきX行読み出すという動作をさせることができます。
※サンプル
Do While (EOF(fp) = 0) // 一度に三行のデータを読み出す LineRead fp data[1] LineRead fp data[2] LineRead fp data[3] Loop
ただし、データ形式が決まっていてファイルの行数が必ず三行、という場合以外は注意が必要です。
例えば二行目のLineReadでfpがEOFに到達してしまった場合、三行目のLineReadはどうなるでしょうか?
SRCが親切設計なら空文字を返してくれるでしょうし、そうでなければエラーが発生してファイルを破損してしまうかもしれません。
SRCが親切設計なら空文字を返してくれるでしょうし、そうでなければエラーが発生してファイルを破損してしまうかもしれません。
まあ実際のところ、SRCがエラーを表示してくれます。もちろんファイルは無事です。
どのみちエラーが出るのは困るので、ファイルの扱いには注意しましょう。
どのみちエラーが出るのは困るので、ファイルの扱いには注意しましょう。