投稿者 スレッド: ファイル競合エラー発生について  (Read 459 times)

TFGE2J

  • 新ユーザー
  • *
  • 投稿: 5
ファイル競合エラー発生について
« 投稿日:: 2024年 7月 03日 , 午前 10:54:01 »
 下記の事象が、TBasic Ver. 1.602 では稀に発生するようになりました。

  ①TBasic 以外のプログラム実行中に、このプログラムで TBasic ソースプログラム ファイル*を
   作成し、TBasic インタプリタを起動してソースプログラムを実行すと、

                               * シフトJIS コードで作成したファイル拡張子 .tbt のファイル

  ②TBasic インタプリタから稀に、ファイル競合エラーメッセージが表示されることがあります。
   このタイミングで TBasic.config ファイルが初期化されてしまい、処理が正常に進まなくなります。

 この事象は、

  ①TBasic Ver. 1.502 では発生しませんでした。
  ②Windows 10 にインストールした TBasic Ver. 1.602 では発生しません。
  ③Windows 11 にインストールした TBasic Ver. 1.602 では発生することがあります。
      (Ver. 1.502 では発生しません。)

 ファイル競合エラーの検知を緩和することは可能でしょうか。
« Last Edit: 2024年 7月 03日 , 午後 08:31:24 by TFGE2J »

takeuchi

  • 管理人
  • *****
  • 投稿: 102
Re:ファイル競合エラー発生について
« Reply #1 投稿日:: 2024年 7月 04日 , 午前 12:13:31 »
情報有難うございます。

> ファイル競合エラーメッセージが表示されることがあります。

このようなエラーの発生は想定していませんでした。

対応等,考えてみます。

また,より詳細な状況が分かれば教えてください。

TFGE2J

  • 新ユーザー
  • *
  • 投稿: 5
Re:ファイル競合エラー発生について
« Reply #2 投稿日:: 2024年 7月 06日 , 午前 07:25:56 »
 関連するプログラムを再度見直したところ、ファイル競合の原因は
私の作成したプログラムにありました。
 お騒がせして申し訳ありません。

 その原因とは、ご参考までに、

  ①TBasic プログラムでキー入力処理等を行い、その内容を書込んだ
   2個のファイル(A、B)をA→Bの順で作成した後、

  ②受け取る側でプログラム間の同期を取るためファイルBが作成されるのを待って、
   A→Bの順でファイルを読み取るべき所をB→Aの順で行っている箇所がありました。

 今まで、微妙なタイミングでエラーにならなかったようです。

 別件ですが、エラーが発生した際の TBasic.config ファイル期化は最小限の項目とし、
利用者が設定画面で設定した項目を含めて、なるべく保持して頂ければと思います。

takeuchi

  • 管理人
  • *****
  • 投稿: 102
Re:ファイル競合エラー発生について
« Reply #3 投稿日:: 2024年 7月 11日 , 午後 05:23:34 »
 情報有難うございました。

> ファイル競合の原因は私の作成したプログラムにありました。

 本来であれば,このような状況でも tbasic が異常終了しないことが望ましいです。
インタプリタの考え方として,エラーの場合は,終了で,再度試行は仕方ないですが,
しかしその際,関連ファイルの破損は避けたいところです。

>エラーが発生した際の TBasic.config ファイル期化は最小限の項目とし、
>利用者が設定画面で設定した項目を含めて、なるべく保持して頂ければと思います。

確かに,異常終了でも,config破損は困りますね。
connfigファイルの破損は,終了処理中に異常が発生することであり得ますが,
可能性は低いと思われます。

>このタイミングで TBasic.config ファイルが初期化されてしまい、

これが発生したのは,どのような状況なのか分かりませんが,
ただ,いずれにしても,このようなことが起きても復旧できる方法が必要かも知れません。

このあたりのこと少し考えてみます。

TFGE2J

  • 新ユーザー
  • *
  • 投稿: 5
Re:ファイル競合エラー発生について
« Reply #4 投稿日:: 2024年 7月 12日 , 午後 07:47:12 »
 返信ありがとうございます。

 TBasic.config ファイル初期化対策について検討して頂けるとのこと、
よろしくお願いします。