※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ファイルからデータを読み取る


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がエラーを表示してくれます。もちろんファイルは無事です。
どのみちエラーが出るのは困るので、ファイルの扱いには注意しましょう。