◀一般トップへ
  • 4249 1行に極端に文字数の多いファイルを開くと落ちます
    • 4251 RE: 1行に極端に文字数の多いファイルを開くと落ちます
      • 4258 ダイアログ期待します
        • 4267 RE: ダイアログ期待します
          • 4271 Re2: ダイアログ期待します
  • [4249] 1行に極端に文字数の多いファイルを開くと落ちます 渡辺真 2005年01月31日 20:35

    1行に518,143文字のファイルを開いたら、サクラエディタが落ちました。

    ちなみに、EmEditorフリーや、xyzzyでは開けました。
    Peggy Padでは、「65,000文字で切り捨てました」とコメントが有って開きます。

    このようなケースはまれでしょうから、対応ムリなら、Peggy Pad方式をお願いします。
    • [4251] RE: 1行に極端に文字数の多いファイルを開くと落ちます もか 2005年01月31日 21:48

      タイプ別の「正規表現キーワード」を使用すると、長い行を含んできると、Bregexp.dllで強制的に落とされることがあります。
      このとき、強制終了のダイアログなどは表示されず、いきなり消えます。
      正規表現キーワードをoffにして回避する以外ないと思います。
      もしかしたら、正規表現「* +」の使用をやめて、{1,40}のように文字数制限を行うと落ちにくいかもしれませんが未確認です。

      #前から一部の人には知られているバグではありますが放置されています。

      以下余談。
      aを85,000桁ほど並べて、
      a{1,32766}と検索すると先頭から 32,766 文字が選択状態になる、
      a{1,32767}と検索すると全部選択される!
      • [4258] ダイアログ期待します 渡辺真 2005年02月02日 23:54

        回答有難うございました。

        状況は理解しました。

        サクラ側で、
        「32,766 を超えています。強制的に落とされることがあります。」
        と一言、挨拶のダイアログなど表示してもらえると、心理的にも不安がなくなります。

        何かの機会に、よろしくお願いいたします。
        • [4267] RE: ダイアログ期待します すい 2005年02月05日 11:56

          正規表現キーワードON状態で、長~い行があるファイルを開いた時に
          落ちる現象でしたら、以前、私が調べたときは「何文字で落ちるか」は
          環境ごとにマチマチでしたよ。

          同じバージョン、同じ正規表現キーワードの設定で
          全角文字が 12377字で落ちる環境とか、同 12337字で落ちる環境とか。

          あと、文字数によっては
          「開いただけでは落ちないけど、開いた後、[End] で行末へ飛んだりすると落ちる」
          とかもありましたし。
          ↑この辺は使用している正規表現にも依存するのかも。(よく分からなかったです)


          ですので、
          >サクラ側で、
          >「32,766 を超えています。強制的に落とされることがあります。」
          >と一言、挨拶のダイアログなど表示してもらえると、心理的にも不安がなくなります。
          こんな事できるのかなぁ?

          もっとも「何文字(何バイト)以上だと落ちる危険性がある」という
          限界値があるなら私も知りたいですね。
          • [4271] Re2: ダイアログ期待します げんた 2005年02月05日 23:31

            >もっとも「何文字(何バイト)以上だと落ちる危険性がある」という
            >限界値があるなら私も知りたいですね。
            アプリケーションエラーを出さずにプロセスが消失するのでスタックオーバーフローではないかと思います.だとすると,スタックをどの程度必要とするかは検索パターンと文字列に依存するのでは?状態数が無茶無茶多いパターンが落ちやすいとか.

            ちなみにさかのぼって調べてみると,
            2001/12/14 >>dev:924 でみくさんが
            >正規表現キーワードを使うにして、バイナリファイル
            >を開くと、まれにアプリケーションで落ちます。
            >場所はBREGEXP.DLLです。どうしよう。
            と書いてあるのが最初ですかね...