掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
AssignFileされたファイルを、CloseFileしないまま、再度AssignFileすることはNGなのか?その弊害は? (ID:148742)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> この動作はこちらの望む状態なのですが、上記のヘルプ抜粋にあるように > AssignFileにて「すでに開いているファイル変数」に対して、 > 再度AssignFileすることはNGなのでしょうか? > > NGならば、どのような弊害が起きえるのか、 この掲示板をご覧になっている方が参考になるかも知れないので, 現在のコードでは問題ないけど・・・,という場合の例を, 手前味噌になってしまいますが示してみたいと思います. 既に配列の例を提示しましたが,以下はポインタ型の変数の操作例です. http://mrxray.on.coocan.jp/Delphi/Others/Pointer.htm#list17 次は,聞きなれない方には申し訳ありませんが,サブクラス化のコードです. [ 11_WindowProc プロパティを使用したサブクラス化 ] http://mrxray.on.coocan.jp/Delphi/Others/InheritedClass_SubClass.htm#11 上のリンクのサンプルで, procedure TForm1.FormDestroy(Sender: TObject); begin // TEdit の WindowProc を元に戻す Edit1.WindowProc := FOriginEditProc; end; というコードを削除しても,上のサンプルのコードは正常に動作します. ただし,例外が発生しないのはそのサンプルの場合です. メッセージの内容,あるいはメッセージの処理内容によっては OnDestroy のコードがないと例外が発生することがあります. つまり,何々しないようにとか,何々するようにという説明があつた時には それに従った方がいいと言うことになります.それが定石と言えます. 残念ながら「弊害が起きるなら,どんな弊害があるのか」を具体的に示すのは, 弊害が発生する示すサンプルを作成しなければなりませんから面倒です. 今回の場合は型なしファイルである File の場合は例外が発生しませんが, TextFie の場合は例外が発生します. ならは,型なしファイルの場合は CloseFile しなくてもいいのでは,と訊かれれば, それはプログラマが自分で判断するしかありません.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.