FGALDC 15 /RE:18211 RE:カーソルを進めるより検索が速い  こんにちは、耳而夢斎 さん 》 普通は,大きなファイルだからこそ一括置換のスピードが生きてくると思う 》んですけどね。巨大ファイルなら,カーソルを進めて編集するよりも百回の置 》換の方が速いと思います。実験はしてませんが。 私もそう思っていたんですけどね。でも、結果は MES14/#7102 に示したとおり。 もっとも、一番時間がかかっているのは改行文字の空白化のようだから、それに 比べれば速いと思いますが。う〜ん、正規表現を使っているのが悪いのかなぁ。 実は、私が改竄した htm2txt でも、改行文字の空白化を飛躍的に早くできれば、 全体の速度の向上にはもっと寄与できると思います。でも、この方面が手詰まり になったので、1から作り直したのです。 この「としき改竄版」では、改行文字は機械的に空白文字に変換していました。 例外条件は、空白文字に変換して行を結合したらラインバッファをあふれてしま うときには結合しない、というものだけ。 当然、例外は少なければ少ないほどいい。では、例外を少なくするにはどうすれ ばいいか。行を結合したときにラインバッファからあふれなければよい。そのた めには、結合前の個々の行が短ければ短いほどよい。ということで、HTMLの 整形に関係ないタグは行結合前に一括置換で削除することにしました。このとき、 全てのタグを削除したいわけではないので、タグの種類毎に何回も繰り返し一括 置換をかけるという格好になります。まぁ、定義済みの全てのタグを一括置換し ても手間ばかりかかってメリットが少ないので、ある程度出現頻度が高いか、あ るいは長さの長くなることの多いタグに絞って削除しています。 そして、行結合の後に、整形に関係あるタグを使って整形します。その後に残っ たタグは、一括置換による削除対象外のタグ、及び、タグ内に改行が入ってしま っていたために行結合前はタグの体をなしていなかったものです。そこで、最後 にこれらを一括置換で削除して完了となります。 ここで、「改行文字は機械的に空白文字に変換」というのをやめて、改行に関す るタグのところでは改行させてしまえばラインバッファの超過は起こらないので はないか、ということを考えました。でも、改行が起きるタグと言っても結構あ るんですよね。
しかり、

しかり、

  • しかり、その他もろもろ。でも、 ごく一部のタグだけ特別扱いすると言うのは、ちょっと非効率に思いました。で は、タグを発見したら、改行の有無に関わらず、全てのタグを処理してしまえば いいのではないか。ということで、現在作成中の整形マクロができているのです。 う〜んと、まずタグの部分だけ改行文字を空白変換、次にタグを処理、最後にも う一度タグ以外の部分の改行を空白変換というのは・・・あ、だめか。
    タグ とかで改行させたところがくっついてしまう。改行に関するタグ処理は一番最後 でないとまずいんだなぁ。 》 もしも,オープンした html を同時にオープンしておきたいなら,リードオ 》ンリー読み込みで二重にオープンしてから #82 でファイル名を変更し,#67で 》通常のモードにしてやればよいでしょう。 ありがとうございます。この方向でちょっと検討させていただきます。                                 としき