|
发表于 2013-2-20 19:35:05
|
显示全部楼层
- Option Explicit
- Private yuanshi() As String '定义成模块变量
- Private Sub Command1_Click()
- Dim i As Integer, j As Integer
- Dim L As Long
- Dim st As Single
-
- st = Timer
-
- L = Len(txt.Text)
- ReDim yuanshi(1 To L) As String
-
- i = 1
-
- For j = 1 To L
- If Mid(txt.Text, j, 1) <> Chr(10) And Mid(txt.Text, j, 1) <> Chr(13) Then
- yuanshi(i) = Mid(txt.Text, j, 1)
- i = i + 1
- End If
- Next j
-
- Debug.Print Timer - st
- MsgBox Timer - st
- End Sub
- Private Sub Command2_Click()
- Dim i As Integer, j As Integer
- Dim L As Long
- Dim st As Single
- Dim s As String
-
- st = Timer
-
- s = txt.Text
- L = Len(s)
- ReDim yuanshi(1 To L) As String
-
- i = 1
-
- For j = 1 To L
- If Mid(s, j, 1) <> Chr(10) And Mid(s, j, 1) <> Chr(13) Then
- yuanshi(i) = Mid(s, j, 1)
- i = i + 1
- End If
- Next j
-
- Debug.Print Timer - st
- MsgBox Timer - st
- End Sub
- Private Sub Command3_Click()
- Dim i As Integer, j As Integer
- Dim L As Long
- Dim st As Single
- Dim s As String
- Dim Ch As String * 1
-
- st = Timer
-
- s = txt.Text
- L = Len(s)
- ReDim yuanshi(1 To L) As String
-
- i = 1
-
- For j = 1 To L
- Ch = Mid(s, j, 1)
- If Ch <> Chr(10) And Ch <> Chr(13) Then
- yuanshi(i) = Ch
- i = i + 1
- End If
- Next j
-
- Debug.Print Timer - st
- MsgBox Timer - st
- End Sub
- Private Sub Command4_Click()
- Dim i As Integer
- Dim L As Long
- Dim st As Single
- Dim s As String
- Dim Ch As String * 1
-
- st = Timer
-
- s = Replace(txt.Text, vbCrLf, "")
- L = Len(s)
- ReDim yuanshi(1 To L) As String
-
- For i = 1 To L
- yuanshi(i) = Mid(s, i, 1)
- Next i
-
- Debug.Print Timer - st
- MsgBox Timer - st
- End Sub
- Private Sub Command5_Click()
- Dim i As Integer
- Dim L As Long
- Dim st As Single
- Dim s As String
- Dim Ch As String * 1
-
- st = Timer
-
- s = Replace(txt.Text, vbCrLf, "")
- L = Len(s)
- ReDim org(1 To L) As Byte
-
- org = s
-
- Debug.Print Timer - st
- MsgBox Timer - st
- End Sub
复制代码IDE:
Command1_Click
22.75
22.57031
22.55469
Command2_Click
.03125
.046875
.0390625
Command3_Click
.0390625
.046875
.0390625
Command4_Click
.0078125
.0234375
.0234375
Command5_Click
0
0
0
按速度优化 exe:
Command1_Click
22.64844
22.25
22.33594
Command2_Click
.0390625
.0390625
.0390625
Command3_Click
.0390625
.0390625
.0390625
Command4_Click
.0234375
.015625
.0234375
Command5_Click
0
0
0
看来编译器的优化不够啊,反复读控件属性的代码不会替换为内存变量。不过仔细想想不优化这个也是有道理的,万一第二次读 txt.Text 的时候它的值发生了变化那就错误了。 |
|