Título: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: minette1988 en 24 Mayo 2010, 11:44 am
Hola, tengo que hacer un script que pida por teclado un carácter y determine si es una vocal, consonante, número o signo de puntuación. ¿Podéis echarme una mano?, ando muy perdida con esto de Visual Basic y el jueves tengo examen. Gracias.
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: Psyke1 en 24 Mayo 2010, 14:56 pm
Mira este ejemplo que hice: Rem añade un TextBox llamado Text1 y un CommandButton llamado Command1 Private Sub Command1_Click() Call Comprobar_Caracter(Text1.Text) End Sub Private Sub Form_Load() Text1.MaxLength = 1 End Sub Private Sub Comprobar_Caracter(Cadena As String) If Len(Cadena) > 1 Then MsgBox "Solo se puede analizar un caracter", vbCritical, "Error": Exit Sub Dim Vocal As String, Consonante As String, Numero As String Vocal = "aeiou" Consonante = "bcdfghjklmnñpqrstvwxyz" Numero = "1234567890" If Not InStr(1, Vocal, Cadena) = 0 Then MsgBox "El caracter """ & Cadena & """ es una vocal", vbInformation ElseIf Not InStr(1, Consonante, Cadena) = 0 Then MsgBox "El caracter """ & Cadena & """ es una consonante", vbInformation ElseIf Not InStr(1, Numero, Cadena) = 0 Then MsgBox "El caracter """ & Cadena & """ es un número", vbInformation Else MsgBox "El caracter """ & Cadena & """ es un símbolo", vbInformation End If End Sub
Espero haberte ayudado... ;)
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: Dessa en 24 Mayo 2010, 16:22 pm
Hola PsYkE1, otra opcion seria Option Explicit
Private Sub Form_DblClick() Me.Cls End Sub
Private Sub Form_Load() Me.AutoRedraw = True StartHook End Sub
Private Sub Form_Unload(Cancel As Integer) StopHook End Sub
Option Explicit
Private Declare Function SetWindowsHookEx Lib "user32.dll" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32.dll" (ByVal hHook As Long) As Long Dim hHook As Long
Public Sub StartHook() hHook = SetWindowsHookEx(13, AddressOf KeyProc, App.hInstance, 0) End Sub Public Sub StopHook() Call UnhookWindowsHookEx(hHook) End Sub Private Function KeyProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Long
Form1.Caption = lParam If wParam = 257 Then If lParam > 47 And lParam < 58 Then Form1.Print lParam & vbTab & Chr(lParam) & vbTab & "Numero" ElseIf lParam > 64 And lParam < 91 Then If lParam = 65 Or lParam = 69 Or lParam = 73 Or lParam = 79 Or lParam = 85 Then Form1.Print lParam & vbTab & Chr(lParam) & vbTab & "Letra Vocal" Else Form1.Print lParam & vbTab & Chr(lParam) & vbTab & "Letra Consonante" End If Else Form1.Print lParam & vbTab & Chr(lParam) & vbTab & "Ni letra ni numero" End If End If
End Function
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: Psyke1 en 24 Mayo 2010, 16:40 pm
Muy interesante Dessa!! ;)
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: [L]ord [R]NA en 24 Mayo 2010, 16:57 pm
Le han hecho la tarea al usuario.
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: Dessa en 24 Mayo 2010, 17:03 pm
La proxima te pedimos permiso ...
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: [D4N93R] en 24 Mayo 2010, 17:03 pm
un hook para una tarea ta simple, se complicaron mucho ..
PD: Si , ya le hicieron la tarea del cole xD
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: Dessa en 24 Mayo 2010, 17:06 pm
Hola PsYkE1, otra opcion seria
me dirigia a PsYkE1, ya que se habló de un tema parecido en otro hilo del foro de VB6
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: Psyke1 en 24 Mayo 2010, 17:15 pm
mmmmm Teneis razon, quizas le hice los deberes... :-\ Aun asi, me sirvio para aprender una cosa nueva... :)
Salu2!
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: cobein en 24 Mayo 2010, 19:51 pm
Me parece que esta manera es mejor para determinar el tipo de caracter puesto que funciona con ê,ñ, etc. Option Explicit
Private Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" (ByVal cChar As Byte) As Long Private Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte) As Long '-1 - Error ' 0 - Symbol ' 1 - Vowel ' 2 - Consonant ' 3 - Number Private Function CharacterKind(ByVal sChar As String) As Long Dim bChar As Byte If Len(sChar) = 1 Then bChar = Asc(UCase(sChar)) If IsCharAlphaNumeric(bChar) Then If IsCharAlpha(bChar) Then Select Case bChar Case 65, 69, 73, 79, 85 CharacterKind = 1 Case Else CharacterKind = 2 End Select Else CharacterKind = 3 End If End If Else CharacterKind = -1 End If End Function
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: ssccaann43 © en 24 Mayo 2010, 20:13 pm
Puff, tremenda solución Cobein...! Me gusta...! :D
Título: Re: decir si un caracter es vocal, consonante, número o signo de puntuación
Publicado por: Dessa en 25 Mayo 2010, 00:17 am
No conocía esas Apis, buen aporte.
|