VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2002/12/12(Thu) 21:26
投稿者Lantern
Eメール
URL
タイトルRe^3: 特定の文字の数

試してみました
'test1:1文字づつ比較
'test2:文字検索
     test1   test2
1回目: 0.1605  0.0064375
2回目: 0.1595625 0.0133125
3回目: 0.16175  0.0076875
4回目: 0.173375  0.0015
5回目: 0.1605  0.0064375
test1については2通り試してみました(コメントと非コメント)
が同じくらいでした

Private Sub Command1_Click()

    Dim i As Integer
    Dim l As Long
    Dim lLen As Long
    Dim bCnt As Integer
    Dim lPos As Long
    Dim strTestString As String
    Dim sCmp As String
    Dim sTm As Single
    
    strTestString$ = vbNullString
    For i% = 0 To 9999
        strTestString$ = strTestString$ & "abcdefghijklmnopqrstuvwxyz"
    Next i%
    
    'test1
    sTm! = Timer!
'    lLen& = Len(strTestString$)
    bCnt% = 0
    l& = 0&
    Do
        sCmp$ = Mid$(strTestString$, l& + 1&, 1&)
        If sCmp$ = vbNullString Then
            Exit Do
        End If
        If StrComp(sCmp$, "c", vbBinaryCompare) = 0 Then
            bCnt% = bCnt% + 1
        End If
        l& = l& + 1&
    Loop While True
'    For l& = 1& To lLen& - 1&
'        If StrComp(Mid$(strTestString$, l&, 1), "c", vbBinaryCompare) = 0 Then
'            bCnt% = bCnt% + 1
'        End If
'    Next l&
    Me.Label1.Caption = Timer! - sTm!
'    MsgBox ("COUNT" & CStr(bCnt%))
    
    'test2
    sTm! = Timer!
    lPos& = 0&
    bCnt% = 0
    Do
        lPos& = InStr(lPos& + 1&, strTestString$, "c", vbBinaryCompare)
        If lPos& > 0& Then
            bCnt% = bCnt% + 1
        End If
    Loop Until lPos& <= 0&
    Me.Label2.Caption = Timer! - sTm!
    'MsgBox ("COUNT" & CStr(bCnt%))
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -