Delphi相談室その3
■ このスレッドは過去ログ倉庫に格納されています
0710683
NGNG1、 Length(S) は const S でも関数に展開される
だから一旦変数に代入して while ループ内の Length(S) を置換する方がいい
2、文字列への Moji[ i ]:= の代入は関数に置換されてしまう
高速化するなら文字列ではなく文字配列かポインタにするといい
ポインタの例は既にあるので、文字配列にする場合の例
type sarray=array[1..$10] of char; //気持ち悪いけどHighは無視されるからOK
var pD:^sarray; と文字配列のポインタと宣言
pD:=@Result[1]; として ループ中の result[wp] を pD^[ wp ] に置換
3、ループ内の for i:=1 to Length(repstr) do Result[wp+i-1]:=repstr[i]; は勿体ない
var repstr:array[0..1]of char; と文字配列にして
Result[wp ]:=repstr[0];
Result[wp+1]:=repstr[1];
inc(wp,repstrLen);
とする。 repstrLen=1の時は無駄なコピーだけど、比較して禁止するにもコードが必要
■ このスレッドは過去ログ倉庫に格納されています