me gustaria saber como puedo hazer para que me busque una palabra i me salga la definicion
se que podria hazerlo con arrays pero tengo un problema
el problema es que si desconozco la palabra no se como hazerlo
Nijizuishou: Cristal Arco Iris. Son 7 cristales con los colores del arcoiris que al reunirse con la lagrima de Serena forman el Cristal de Plata, ocultos en el interior de siete humanos que son la reencarnacion de los siete demonios más poderosos del negaverso.
digamos que desconozco esta palabra Nijizuishou
pero se esta negaverso
como me lo tendria que hazer para que me buscara las palabras i me saliera la definicion
gracias de antemano
Yo lo haría usando la función InStr.
Yo tendría dos arrays tipo string. Uno con los nombres y otro con las definiciones. Entonces, haría un textbox donde se insertaría la palabra a buscar. Y luego haría un InStr para buscar esa palabra en el array con todas las palabras y si no lo encontrase, entonces haría una búsqueda de esa palabra en las definiciones por si lo encontrase.
Sería algo así:
Suponiendo que hay dos arrays, uno con las palabras y otro con las definiciones, crea un textbox donde se introducirá la palabra a buscar y un botón que servirá para realizar la búsqueda. Obviamente esto es sólo un ejemplo y he cargado sólo una posición del vector con su nombre y definición pero tendrías que hacer una función que cargase ambos vectores con sus nombres y definiciones correspondientes. Ahí va el ejemplo:
Dim palabras(1 To 50) As String
Dim definiciones(1 To 50) As String
Private Sub Command1_Click()
palabras(20) = "Nijizuishou"
definiciones(20) = "Cristal Arco Iris. Son 7 cristales con los colores del arcoiris que al reunirse con la lagrima de Serena forman el Cristal de Plata, ocultos en el interior de siete humanos que son la reencarnacion de los siete demonios más poderosos del negaverso."
For i = 1 To 50
If InStr(LCase(palabras(i)), LCase(Text1.Text)) Then
MsgBox definiciones(i)
Else
If InStr(LCase(definiciones(i)), LCase(Text1.Text)) Then
Msgbox definiciones(i)
End If
End If
Next
End Sub
Lo paso todo a minúsculas antes de comparar para evitar que al buscar la palabra "Nijizuishou" con n minúscula no se produjese ningún resultado y ese tipo de cosas. Para esto sólo he tenido que usar la función LCase antes de comparar.
ok pero entonces tengo k ir poniendo los nombres i definiciones uno a uno no¿?
i como se haria para azerlo al inverso l buscara una palabra de la definicion i me saliera el nombre con la definicion¿?¿?
Claro que tendrás que ponerlo de uno en uno o bien cargarlos desde un fichero. Pero eso hazlo tú porque yo no tengo ganas de ponerme a hacer eso xD
Para que fuese al revés... que buscases algo de la definición y te mostrase el nombre dices?, pues es muy sencillo, con el código que te he puesto podrías sacarlo...
Dim palabras(1 To 50) As String
Dim definiciones(1 To 50) As String
Private Sub Command1_Click()
palabras(20) = "Nijizuishou"
definiciones(20) = "Cristal Arco Iris. Son 7 cristales con los colores del arcoiris que al reunirse con la lagrima de Serena forman el Cristal de Plata, ocultos en el interior de siete humanos que son la reencarnacion de los siete demonios más poderosos del negaverso."
For i = 1 To 50
If InStr(LCase(definiciones(i)), LCase(Text1.Text)) Then
MsgBox palabras(i) & ": " & definiciones(i)
End If
Next
End Sub
gracias
aver si me sabes decir pk me da error de compilacion esk cuando quiero poner una palabra en el formulario me dice error de compilacion
Dim palabras(0 To 10) As String
Dim definiciones(0 To 10) As String
Private Sub Command1_Click()
Dim_palabras(0) = "a-su"
Dim_palabras(1) = "Aa"
Dim_palabras(2) = "Abayo"
Dim_palabras(3) = "Abekku"
Dim_palabras(4) = "Abunai"
Dim_palabras(5) = "Ace o Nerea"
Dim_palabras(6) = "Achi Kochi"
Dim_palabras(7) = "Aenaisago"
Dim_palabras(8) = "Agemasu"
Dim_palabras(9) = "Ah souka"
Dim_definiciones(0) = "Dia de la Tierra (22 de Abril)."
Dim_definiciones(1) = "Ah, Er. "
Dim_definiciones(2) = "Es a 'sayonara' como 'kisama' es a 'anata'... En términos más simples, 'abayo' es una forma muy poco cortés de despedirse de alguien."
Dim_definiciones(3) = "Juntos (con alguien)."
Dim_definiciones(4) = "Peligro, Peligroso, ¡Cuidado!."
Dim_definiciones(5) = "Raqueta de oro."
Dim_definiciones(6) = "Aquí y alla"
Dim_definiciones(7) = "Muerte Tragica. "
Dim_definiciones(8) = "Dar."
Dim_definiciones(9) = "Ah correcto."
Dim i As Integer
Dim palabras As String
Dim mensaje As Variant
If Text1 = "" Then
mensaje = MsgBox("escrive una palabra", vbExclamation, "te has oblidado de escribir la palabra")
End If
Next
mensaje = MsgBox("esta palabra no esxiste", vbOKOnly, "te has oblidado de escribir la palabra")
palabras = Text1.Text
For i = 0 To 10
If palabra = palabras(i) Then
Text2.Text = definiciones(i)
Exit Sub
End If
For i = 0 To 10
If InStr(LCase(definiciones(i)), LCase(Text1.Text)) Then
MsgBox palabras(i)
End If
Next
End Sub
PD: como tendria que hazerlo para cargar el archivo asin me salvaria de tener que ponerlos todos esk hay un monton de palabras
Cuando establezcas el valor de la variable palabras y definiciones quitale el Dim_
Saludos.
Dim palabras(0 To 10) As String
Dim definiciones(0 To 10) As String
Private Sub Command1_Click()
palabras(0) = "a-su"
palabras(1) = "Aa"
palabras(2) = "Abayo"
palabras(3) = "Abekku"
palabras(4) = "Abunai"
palabras(5) = "Ace o Nerea"
palabras(6) = "Achi Kochi"
palabras(7) = "Aenaisago"
palabras(8) = "Agemasu"
palabras(9) = "Ah souka"
definiciones(0) = "Dia de la Tierra (22 de Abril)."
definiciones(1) = "Ah, Er. "
definiciones(2) = "Es a 'sayonara' como 'kisama' es a 'anata'... En términos más simples, 'abayo' es una forma muy poco cortés de despedirse de alguien."
definiciones(3) = "Juntos (con alguien)."
definiciones(4) = "Peligro, Peligroso, ¡Cuidado!."
definiciones(5) = "Raqueta de oro."
definiciones(6) = "Aquí y alla"
definiciones(7) = "Muerte Tragica. "
definiciones(8) = "Dar."
definiciones(9) = "Ah correcto."
Dim i As Integer
Dim pal As String
Dim mensaje As Variant
If Text1.Text = "" Then
mensaje = MsgBox("escribe una palabra", vbExclamation, "te has olvidado de escribir la palabra")
End If
mensaje = MsgBox("esta palabra no existe", vbOKOnly, "te has olvidado de escribir la palabra")
pal = Text1.Text
For i = 0 To 10
If pal = palabras(i) Then
Text2.Text = definiciones(i)
Exit Sub
End If
Next
For i = 0 To 10
If InStr(LCase(definiciones(i)), LCase(Text1.Text)) Then
MsgBox palabras(i)
End If
Next
End Sub
- Dim solo se usa para declarar variables, nunca más a lo largo del programa.
- Has declarado la variable "palabras" y ese es el mismo nombre que tenía el vector. No puede haber dos variables con un mismo nombre en un programa.
- Indenta bien tu código, sólo tenias indentado lo que habías copiado de mi ejemplo y si un código no está bien indentado es más difícil de entender.
- Te he corregido varias faltas de ortografía, "escribe" es con b y no es "oblidado" es "olvidado".
LEE UN BUEN MANUAL DE VISUAL BASIC, POR TUS ERRORES DEDUZCO QUE ESTÁS MUY PERDIDO Y NO TIENES MUCHA IDEA DEL TEMA, ASÍ QUE ES MEJOR QUE ESTUDIES UN POCO ANTES DE EMPEZAR A PROGRAMAR.
Como siempre digo, no quieras correr sin saber gatear...
Saludos!
vale me tragare todos los manuales que sea necesario >:D
i gracias por coregir el codigo ;)