本当はごぶさたしております。ですが、しばらく他言語で浮気をしていたので、
忘れられていると思います。
peek関数を使おうとしたところ、読み出したいデータの場所によって、
エラーが出る現象に会いました。重いデータを処理しようとして、
無理しているワケでもないのですが、
普通に1バイト取り出そうとするだけで、エラーが出る様です。
これは環境依存? 使い方の間違い?
過去ログを見ると、バイナリデータをカ加工する場合、
機械語の話など出て来るようですが、
実はpeekって、あまり使われていない関数で、バグが含まれていたりするのでしょうか?
ちなみの環境はWin2000です。HSP3.0と3.1で試しました。
peekのテストだけのシンプルなスクリプトを作って試すと、
下記の様な事がわかりました。
;対象の変数 sample_data="abcdefg" ;この例はテスト用なので7バイトしか有りませんが、 ;このサイズは大きくても小さくても変わらないようです。 ;存在しないデータを読み取ろうとしたら、問題なく「0」が返されるだけのはず。 b=peek(sample_data,63) ;インデックスに63を指定すると、その場所のデータが返されます。 ;しかしここで64以上の数を指定すると、実際のデータが存在しても、しなくても ;「Error 3 パラメータの値が異常です。」のErrorウインドウが表示されます。 ;64まで大丈夫な場合もあって、再現性はバラバラです。 ;ちなみにlpeekとwpeekの場合は60がOKで61以降がダメだったりします。 mes b stop