記事"WinAPI によるファイル処理"についてのディスカッション

 

新しい記事 WinAPI によるファイル処理 はパブリッシュされました:

MQL4 環境は安全な『サンドボックス』の概念を基にしています。言語を用いたファイルの読み出しと保存は一部の定義済みフォルダでのみ許可されています。これは MetaTrader 4 のユーザーを HDD 上の重要なデータを破壊する潜在的な危険から守ってくれます。ですが、その安全領域を残しておくことが必要な場合もあります。本稿はそれを簡単に正確に行う方法の問題に特化しています。

-長さが1の文字列定数 'char' が与えられます。すなわち、それによりそこに1バイトだけ読むことができるのです。同時に、この定数の値は問題ではありません。 "x"、"Z" のどちらでもありえ、" "(空白文字)でもかまいません。この定数に最初に定義されている以上のバイト数は読むことができません。この場合、2バイト以上を読もうとしてもうまく いきません。また、関数 _lread() の結果は実際に読むバイト数です。ファイルの大きさが20倍とで、30バイトの長さの変数を読もうとしたら、関数は20を返します。この関数を連続して使 えば、一つずつファイルのブロックを読みながらファイルを移動することになります。たとえば、あるファイルの長さが22バイトだとします。10バイトのブ ロックごとに読み始めます。そして、関数 __lread(handle, buff, 10) を二度呼んだあと、ファイルの終わりの2バイトかは未読のままとなります。

作者: MetaQuotes Software Corp.