源码结构基本如下,For iTemp = 0 To 4
arrWRec(iTemp).prop = WINDOW_INDEX
iParams = 5
lData = 3001
'计算
For iTemp1 = 0 To lData
For iTemp2 = 0 To iParams
strstatement = arrWRec(iTemp).arrParam(iTemp2).strstatement svalue = EF(strstatement)
arrWRec(iTemp).arrData(iTemp2, iTemp1) = svalue
arrWRec(iTemp).arrParam(iTemp2).svalue = svalue
Next
Next
NextPrivate Function EF(ByVal expr As String) As Single
firstpos = InStr(1, expr, "(")
lexpr = LCase(left(expr, firstpos - 1))
Select Case lexpr
Case "sum"
secondpos = InStr(firstpos, expr, ",")
strParam1 = Mid(expr, firstpos + 1, secondpos - firstpos - 1)
thirdpos = InStr(secondpos + 1, expr, ")")
strParam2 = Mid(expr, firstpos + 1, secondpos - firstpos - 1)
EF = innerSUM(strParam1, strParam2)
Case "if"
secondpos = InStr(firstpos, expr, ",")
strParam1 = Mid(expr, firstpos + 1, secondpos - firstpos - 1)
thirdpos = InStr(secondpos + 1, expr, ",")
strParam2 = Mid(expr, secondpos + 1, thirdpos - secondpos - 1)
forthpos = InStr(thirdpos + 1, expr, ")")
strParam3 = Mid(expr, thirdpos + 1, forthpos - thirdpos - 1)
EF = innerIF(strParam1, strParam2, strParam3)
End Select
End FunctioninnerSUM,innerIF内部还没写哪,就感觉慢了.
arrWRec(iTemp).prop = WINDOW_INDEX
iParams = 5
lData = 3001
'计算
For iTemp1 = 0 To lData
For iTemp2 = 0 To iParams
strstatement = arrWRec(iTemp).arrParam(iTemp2).strstatement svalue = EF(strstatement)
arrWRec(iTemp).arrData(iTemp2, iTemp1) = svalue
arrWRec(iTemp).arrParam(iTemp2).svalue = svalue
Next
Next
NextPrivate Function EF(ByVal expr As String) As Single
firstpos = InStr(1, expr, "(")
lexpr = LCase(left(expr, firstpos - 1))
Select Case lexpr
Case "sum"
secondpos = InStr(firstpos, expr, ",")
strParam1 = Mid(expr, firstpos + 1, secondpos - firstpos - 1)
thirdpos = InStr(secondpos + 1, expr, ")")
strParam2 = Mid(expr, firstpos + 1, secondpos - firstpos - 1)
EF = innerSUM(strParam1, strParam2)
Case "if"
secondpos = InStr(firstpos, expr, ",")
strParam1 = Mid(expr, firstpos + 1, secondpos - firstpos - 1)
thirdpos = InStr(secondpos + 1, expr, ",")
strParam2 = Mid(expr, secondpos + 1, thirdpos - secondpos - 1)
forthpos = InStr(thirdpos + 1, expr, ")")
strParam3 = Mid(expr, thirdpos + 1, forthpos - thirdpos - 1)
EF = innerIF(strParam1, strParam2, strParam3)
End Select
End FunctioninnerSUM,innerIF内部还没写哪,就感觉慢了.
解决方案 »
- vb程序如何进行打包和制作安装盘?
- 请问那个有查找计算机的那个GIF动画和移动文件时的GIF动画?
- 请问一些vb的问题,第2个问题实在是找不出原因了,求救!
- 我的软件{xCAM家庭视频监视软件}请大家测试呀!
- 现金求计算机辅助教学软件。
- 2003-12-14 123:45:57 分别提取出日期和时\分\秒
- 哪里可以找到支持通过手机数据线发送短信的控件,可以二次开发的,解密的或者没有功能限制的!谢谢
- 无法更新SQL数据
- VB中MDI窗体如何检查是否已打开子窗体.....
- ListView 控件的问题,还望高手鼎力相助!!
- 怎样控制vb制作的窗体,固定一个位置,总在最上面。
- 怎么在DLL中使用多线程?
for k = 1 to 8
for j = 1 to 3000
select case ?
execute "function"
end select
next
next
next
如果0.5 秒钟就完成,就无须DoEvents了.
2)循环的次数越多,越放在最里面。
3)次数较少的循环可以用复制、粘贴代码代替
比如for i=1 to 2
for j = i * 10 to i * 20
...
next j
next i
改为
for j = 10 to 40
...
next j