« VBScriptのReplace()関数の代替にJScriptを使う。 | トップページ | VBAのReplace()関数も、チョー遅い! »

2008年5月 3日 (土)

VBScriptのReplace()関数の代替関数を作る。

代替関数を作ってはみたものの、性能は、中くらい!(:-p)
RegExpのReplace()メソッドが一番ですね。

a = String(1024 * 1024,"a")
t1 = Timer
b = Replacex(a, "a", "b")
MsgBox Timer - t1
' 5.125

Function Replacex(s, p, r)
Dim a(), n, b, e, f
ReDim a(Len(s))
b = 1
n = 0
f = InStr(b, s, p)
Do While f
  a(n) = Mid(s, b, f - b)
  n = n + 1
  b = f + Len(p)
  f = InStr(b, s, p)
Loop
a(n) = Mid(s, b)
ReDim Preserve a(n)
Replacex = Join(a, r)
End Function

« VBScriptのReplace()関数の代替にJScriptを使う。 | トップページ | VBAのReplace()関数も、チョー遅い! »