◀ANSI版開発トップへ
  • 5090 ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図
    • 5094 Re:ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図
      • 5119 Re2:ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図
    • 5120 RE: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図
      • 5121 Re2: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図
        • 5122 Re3: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図
          • 5126 Re4: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図
  • [5090] ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図 kobake 2007年10月07日 02:44

    CEditDoc::FileSaveAs の中で、
    SaveFile の後に ReloadCurrentFile を呼んでいますが、
    これはどういった意図があるのでしょうか。

    UNICODE化に関する話になってしまいますが、
    例えばSJIS範囲外の文字を含む文書をSJISで保存した場合に、
    再読込が無ければ編集中の文字データは失われないのですが
    再読込が発生すると、当然、編集中の文字データ (SJIS範囲外の個所) が壊れてしまいます。

    「この文書はこんな形で保存されましたよ」的なアナウンスであると考えれば
    これも仕様と捉えることができますが。

    個人的には、せっかく編集中には保持されている文字コードを敢えて壊すのもどうかな、という思いです。
    たとえば同じ文書を SJIS, EUC, UTF-8 でそれぞれ保存してみる、といったことをしようとすると、
    SJIS保存の時点で文字データが壊れるので、それ以降の保存が正しい結果にならなくなります。
    • [5094] Re:ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図 ラスティブ 2007年10月07日 13:36

      ▼ kobakeさん
      > CEditDoc::FileSaveAs の中で、
      > SaveFile の後に ReloadCurrentFile を呼んでいますが、
      > これはどういった意図があるのでしょうか。

      書き込まれたデータの確認がてらに
      再読み込みしているように見えます。確かに、
      確認して操作を間違っていたことに気づいても
      既に手遅れの状態になっているので使いでがないですよね。
      • [5119] Re2:ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図 kobake 2007年10月11日 23:51

        ▼ ラスティブさん
        > 書き込まれたデータの確認がてらに
        > 再読み込みしているように見えます。確かに、
        > 確認して操作を間違っていたことに気づいても
        > 既に手遅れの状態になっているので使いでがないですよね。

        なるほど。

        SJIS版だとデータが失われることが稀なので(日本語しか編集しないので)、
        あんまり問題にもならなかった気もします。

        特に重要な意図があるわけでは無い、と判断し、
        UNICODE版では、とりあえず再読込を切っておきました。
        もし必要ならオプションで再読込あり/なしを選べても良いかもしれません。
    • [5120] RE: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図 げんた 2007年10月12日 00:37

      >SaveFile の後に ReloadCurrentFile を呼んでいますが、
      >これはどういった意図があるのでしょうか。
      想像ですが...

      保存時に改行コードの統一ができます.その際,エディタ内部のバッファを1行ずつ書き換える代わりに再読込で辻褄を合わせているとか?
      • [5121] Re2: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図 kobake 2007年10月12日 01:37

        ▼ げんたさん
        > >SaveFile の後に ReloadCurrentFile を呼んでいますが、
        > >これはどういった意図があるのでしょうか。
        > 想像ですが...
        >
        > 保存時に改行コードの統一ができます.その際,エディタ内部のバッファを1行ずつ書き換える代わりに再読込で辻褄を合わせているとか?

        なるほど、もしそうだとすると、
        再読込を削った場合は自前で改行コードを統一する必要がありますね。
        実際どうなっているか、後で確認してみます。
        • [5122] Re3: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図 maru 2007年10月12日 03:29

          再読み込みを無くしたとき、MRUの登録とかは大丈夫でしょうか。
          • [5126] Re4: ファイル書き込み (SaveFile) 後の再読み込み (ReloadCurrentFile) の意図 kobake 2007年10月13日 00:21

            ▼ maruさん
            > 再読み込みを無くしたとき、MRUの登録とかは大丈夫でしょうか。

            なるほど、これも気づきませんでした。
            調べてみましたが、一応、FileWrite の中でも AddToMRU が呼ばれているせいか、
            ファイル保存時のMRUの挙動は、再読込を削る前と変わっていませんでした。

            軽い気持ちで再読込削ってしまいましたが
            他にも見落としている点がありそうですね。
            ReloadCurrentFile内の流れを真面目に追って、
            他に落ちが無いかどうかちゃんと検証してみます。