2011-07-23 35 views
3

私はこれを行う人々のほんの一部(ここでは一例:http://pascalgamedevelopment.com/archive/index.php/t-1204.html)を見ました。TFileStream.Createの後にSource.Seek(0、soFromBeginning)を呼び出す必要がありますか?

エンバカデロのドキュメントには、ストリームを作成した後のファイル/ストリーム内のヘッダーの位置について何も記述されていません。


結論:ドキュメントが保証カーソルの位置をしないため

、私たちは '= 0シーク' を使用する必要があります。カーソルがファイルの先頭に置かれても、これがどのように変化するかはわかりません。 Embarcaderoはこれを文書化していないので、変更する権利を保有しているように見えます。

答えて

13

TFileStream.Createは、ファイルハンドルを開き、Win32がハンドルを開いた後にファイルの先頭に置くファイルの位置をファイルの先頭にします。

シークを0にする必要はありません。あなたはすでにそこにいます。

+0

+1しかし、私はまだ "Position:= 0;"ストリームを読み込みまたは読み書きモードで開いていて、安全な側にある場合は – ComputerSaysNo

+0

@Dorin。なぜか分からない。説明してください。 – Ampere

+0

将来的に(RTLソースで)何が変わるかわからないので、このようにしてファイルのハンドルを作成した後、カーソルの位置をストリーム。それは私がそれを行う方法です... – ComputerSaysNo

関連する問題