用Mid$命令超速字符串添加操作

用Mid$命令超速字符串添加操作,第1张

用Mid$命令超速字符串添加操作,第2张

众所周知,&运算符的执行速度相当慢,尤其是在处理长字符串的时候。当字符必须重复追加到同一个变量时,可以使用基于Mid$命令的技巧。基本思路是:预留足够长的空空间来存储运算结果。下面是应用这项技术的一个例子。

假设构建一个字符串,需要追加10,000个从1开始的整数:“1 2 3 4 5 6 7...9999.

10000"。下面是最简单的实现代码:
RES = " "
for I = 1 to 10000:RES = RES & str(I):next

虽然代码很简单,但问题很明显:Res变量会被重分布10000次。下面的代码达到了同样的目的,但是效果明显提高了:

Dim RES As String
Dim I As Long
Dim index As Long

预留足够长的buffer空room
RES = Space(90000)

指针变量,指示在何处插入字符串
index = 1

循环开始
for I = 1到10000
substr = str(I)
length = len(substr)

填充字符串
mid $ (res,index,length) = substr的对应区间段值

调整指针变量
index =索引+长度

然后

删除多余的字符
res = Left$(res,index-1)

测试显示,在333MHz的电脑上,前面代码的执行时间是2.2秒,而后面只有0.08秒!虽然代码长了一点,但是速度提高了25倍。呵呵,从这个角度来说:代码不是黄金

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用Mid$命令超速字符串添加操作

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情