954,193 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

What is wrong with this code???

Function CheckWord(ByVal Wrd As String) As String
        Dim i As Integer
        Dim Pos As Integer
        Dim Found As Integer
        Found = 0
        For i = 1 To 26
            Pos = InStr((Word(i).ToLower), Wrd.ToLower)
            If Pos <> 0 Then
                CheckWord = Word(i)
                Found = 1
            End If
        Next
        If Found = 0 Then
            Label2.Caption = "Not match"
        End If

   
End Function
s0312001
Light Poster
26 posts since Feb 2006
Reputation Points: 10
Solved Threads: 0
 

Hmn, VB6 doesn't have the .toLower method. It uses an lcase(variablename or string) function...... try switching

Pos = InStr((Word(i).ToLower), Wrd.ToLower)


to

Pos = InStr(lcase(Word(i)), lcase(Wrd))


and see how that feels....

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

I tried your code and had a type mismatch error message

something is wrong with this code

Private Sub RC_Recognition(ByVal StreamNumber As Long, ByVal StreamPosition As Variant, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal Result As SpeechLib.ISpeechRecoResult)

Label1.Caption = Label1.Caption & CheckWord(Result.PhraseInfo.GetText)
End Sub

s0312001
Light Poster
26 posts since Feb 2006
Reputation Points: 10
Solved Threads: 0
 

try casting it to a string..... I am trying to help you with code fragments.... I don't know how the program works together in it's entirety, but try this:
Label1.Caption = Label1.Caption & CheckWord(cstr(Result.PhraseInfo.GetText))

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

Thanks..here is my code, can you identify my errors...

Dim WithEvents RC As SpInProcRecoContext
Dim Recognizer As SpInprocRecognizer
Dim myGrammar As ISpeechRecoGrammar
Dim Word(26) As String




Private Sub Form_Load()
Set RC = New SpInProcRecoContext
Set Recognizer = RC.Recognizer

Set myGrammar = RC.CreateGrammar
myGrammar.DictationSetState SGDSActive

Dim Category As SpObjectTokenCategory
Set Category = New SpObjectTokenCategory
Category.SetId SpeechCategoryAudioIn

Dim Token As SpObjectToken
Set Token = New SpObjectToken
Token.SetId Category.Default()
Set Recognizer.AudioInput = Token


Word(1) = "Alpha"
Word(2) = "Bravo"
Word(3) = "cat"
Word(4) = "Dog"
Word(5) = "Echo"
Word(6) = "Frank"
Word(7) = "Golf"
Word(8) = "Hotel"
Word(9) = "India"
Word(10) = "Jane"
Word(11) = "Kilo"
Word(12) = "Lima"
Word(13) = "Mike"
Word(14) = "North"
Word(15) = "Oscar"
Word(16) = "Paul"
Word(17) = "Queen"
Word(18) = "Romeo"
Word(19) = "Sierra"
Word(20) = "Tango"
Word(21) = "Under"
Word(22) = "Victor"
Word(23) = "Water"
Word(24) = "Xray"
Word(25) = "Yoyo"
Word(26) = "Zulu"


EH:
If Err.Number Then ShowErrMsg()

End Sub


Private Sub RC_Recognition(ByVal StreamNumber As Long, ByVal StreamPosition As Variant, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal Result As SpeechLib.ISpeechRecoResult)

Label1.Caption = Label1.Caption & CheckWord(CStr(Result.PhraseInfo.GetText))
End Sub


EH:
If Err.Number Then ShowErrMsg()
End Sub


Private Sub ShowErrMsg()

' Declare identifiers:
Const NL As String = vbNewLine
Dim T As String

T = "Desc: " & Err.Description & NL
T = T & "Err #: " & Err.Number
MsgBox(T, MsgBoxStyle.Exclamation, "Run-Time Error")
End

End Sub



Function CheckWord(ByVal wrd As Integer) As Integer


Dim Pos As Integer
Dim Found As Integer
Found = 0
For i = 1 To 26
Pos = InStr(LCase(Word(i)), LCase(wrd))
If Pos <> 0 Then
CheckWord = Word(i)
Found = 1
End If
Next
If Found = 0 Then
Label2.Caption = "Not matched"
End If


End Function

End Class

s0312001
Light Poster
26 posts since Feb 2006
Reputation Points: 10
Solved Threads: 0
 

Hmn, I don't have the object for voice recognition that you have...

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

What object??

s0312001
Light Poster
26 posts since Feb 2006
Reputation Points: 10
Solved Threads: 0
 

SpInProcRecoContext, is it a third party download?

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

I am using micrososft's Speech SDK 5.1.
You remember the code you helped me with before (that one that works fine)..but it is using an older version of SDK not 5.1, i think it is 4 or 5.
so i couldn't find documentation.

I am trying to develop the same application using 5.1, but the documentation is confusing.

s0312001
Light Poster
26 posts since Feb 2006
Reputation Points: 10
Solved Threads: 0
 

Can you point out the line that is causing the error?

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

This is the line that is causing the error
If Err.Number Then ShowErrMsg()

But when I make it as a comment

This line that is causes the error Label1.Caption = Label1.Caption & CheckWord(CStr(Result.PhraseInfo.GetText))

s0312001
Light Poster
26 posts since Feb 2006
Reputation Points: 10
Solved Threads: 0
 

try breaking that up into variables.... like
thetext = CStr(Result.PhraseInfo.GetText)
and then call checkword(thetext), and see if that helps... also, try msgboxing result.phraseinfo.gettext, beyond that.... what is phraseinfo?

EDIT: n/m I see that phraseinfo is a part of the object for the speechlib.... try msgboxing it, and see if it returns the proper values....

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You