假設要建立一個字符串,它要附加從1開始的10000個整數:"1234567...9999
10000"。下面是最簡單的實現代碼:
res=""
Fori=1to10000:res=res&Str(i):Next
代碼雖然簡單,但問題也很明顯:Res變量將被重分配10000次。下面的代碼實現同樣的目的,但效果明顯好轉:
DimresAsString
DimiAsLong
DimindexAsLong
'預留足夠長的緩沖空間
res=Space(90000)
'指針變量,指出在哪裡插入字符串
index=1
'循環開始
Fori=1to10000
substr=Str(i)
length=Len(substr)
'填充字符串的相應區間段數值
Mid$(res,index,length)=substr
'調整指針變量
index=index length
Next
'刪除多余字符
res=Left$(res,index-1)
測試表明:在一個333MHz的計算機上,前段代碼執行時間為2.2秒,後者僅僅為0.08秒!代碼雖然長了些,可是速度卻提高了25倍之多。呵呵,由此看來:代碼也不可貌相啊