他のアプリケーションによってロックされているか調べる
にはどうしたらいいのですか?
例えば、他のアプリによって開かれていた場合に、
StringList1.LoadFromFile(...)と実行すると、
ファイルが開けません、となります。
これを防ぐためにはどうしたらいいのですか?
よろしくお願いします。
開けない場合は、どうやっても開けません。
そうでないと、操作されないようにロックする意味がありませんから。
防ぐのであれば、ロックされる前に自アプリでロックするしかありません。
単純にエラーを回避したいのであれば、try...except...end;で、例外をキャッチしてやればよいです。
オプションを変更しないと、IDEでの実行時には例外発生とともに一時停止します。
もちろん、エラーを回避してもファイルは開けません。
にしのさん、レスありがとうございます。
try...exceptを使えばよかったんですね。
> 防ぐのであれば、ロックされる前に自アプリでロックするしかありません。
LoadFromFileで開いてもロックされませんよね?
ロックする場合には、どうすればいいのですか?
よろしくお願いします。
TFileStream.Createのヘルプを参照してください。
第2引数に、fmShareExclusive があればロックされます。
にしのさん、ありがとうございます。
TFileStreamというのを使ったことがないのですが、
TStringListと何が違うか教えていただきたいのですが。
現在やっていることは、与えられた文字列を追加して
保存するということを繰り返します。
この場合、どちらを使った方が効率がいい
(パフォーマンスを含めて)のでしょうか?
TFileStreamは、ファイルからデータを読み取るのに使います。テキストデータだけでなく、バイナリデータでもOKです。
TStringList.LoadFromFileの代わりに、TStringList.LoadFromStreamを使用すれば、ほぼ同じことができます。
ツイート | ![]() |