∬   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ~━っミ ゚Д゚彡,,    <  遅いコードを書いたら即ベーシッカー扱いかよ
    ∀._(,,,~  ,,,~⊃_   \_オメデテーナ_______________
━┳┷ |. ,(~ヽ,,,ミ.
  ┃...| ̄ ̄し'J.  ̄ ̄ ̄
  ┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄
そんな短絡思考してるからVBや.NETの人にDel厨扱いされるんじゃないの?

文字列のメモリ確保に関するオーバーヘッドの仕組みを
理解していないと、遅いコードを書く事があるってだけでしょ。

というか、元コードのソースぐらい一瞬で理解してよ。
AdjustLineBreakesでCRLFに変換してからCRかLFを削除しているだけじゃん。
その方式の、どこで遅くなっているかを知ってるなんて事は
タンナル1知識。Tipsだよ。

func9,10が速いのは、配列とポインタの区別じゃなくて
(って、モット早くなるかもね)
ループ中に判定する条件判断が俺のは
見ている文字と次の文字がCRなのかLFなのかで
func2の見ている文字と次の文字と次の文字が文字列の最終かどうか
を判断するコードとはIFの数が違うんでないのかな?

あと、誰も突っ込みいれないからアレなんだけど
> ただーし!
> for i:=High(prog) downto Low(prog) do with prog[i] do begin
> 計測はレス10.9.8.7...の順で行ってるけど。(w
フサのよくわからない所でキャッシュが効いているようなので
for i:=Low(prog) to High(prog) do with prog[i] do begin
とすると、最速はfunc8だね。

タンナル1知識とか言ってしまったけど
とりあえず、いろいろやって下さった方>おーる

  ∧,, ∧
  ミ。_。彡 ペコッ
〜ミ,,,U U,,ミ
        めちゃ勉強にナタ。アリガトウ。