Autor
|
Tema: Función que si "encuentra" haga una acción (Leído 3,466 veces)
|
dimitrix
|
Hola, lo que necesito es que si el programa "encuentra" una palabra en un texto haga una acción por ejemplo un msgbox, no puedo utilizar el If, ya que no el texto puede tener otros contenidos.
Thank.
|
|
|
En línea
|
|
|
|
cobein
|
Option Explicit
Private Sub Form_Load() '// Case sensitive If Not InStr(1, "Tu Texto", "Lo que buscas") = 0 Then Debug.Print "WTF" End If '// Case insensitive If Not InStr(1, UCase("Tu Texto"), UCase("Lo que buscas")) = 0 Then Debug.Print "WTF" End If End Sub
|
|
|
En línea
|
|
|
|
|
cobein
|
Imagino !!!!! cosa que no tendria que pero bueno dejemoslo ahi, que el comentario del if es simplemente porque el no quire comparar una frase exacta sino ver si una palabra/s existen en un texto
|
|
|
En línea
|
|
|
|
dimitrix
|
Exacto, es lo que dice "cobein", al principio no me iba, luego ya cambié las cositas un poquito y ya me va genial, pongo el código: Option Explicit Private Sub Command1_Click() 'Si no encuentra la letra "a" pasa abajo If Not InStr(1, Text1, "a") = 0 Then MsgBox "Econtré la letra a" Else MsgBox "No encontré la letra a" End If End Sub
Solo por curiosidad seba123neo, ¿Cómo sería con "Case"? Nunca está de más aprender.
|
|
|
En línea
|
|
|
|
cobein
|
Option Explicit
Private Sub Form_Load() Select Case True Case "mi texto tiene esto" Like "*esto*" Debug.Print "SE ACA TA" Case Else Debug.Print "NO TA" End Select End Sub
|
|
|
En línea
|
|
|
|
seba123neo
|
a listo,ahora caigo ,pues algo asi: Option Explicit
Private Sub Command1_Click() Select Case InStr(1, Text1, "a") Case Is = 0 MsgBox "No encontré la letra a" Case Is <> 0 MsgBox "encontré la letra a" End Select End Sub
saludos.
|
|
|
En línea
|
|
|
|
dimitrix
|
Muchas gracias, unas preguntas para aprender ya que no encontré en google:
¿Qué hace el "Debug.Print"? Ya que imprimir algo en pantalla sería más lógico en C no en VB.
¿La función "Not InStr" que hace exactamente?, ¿Tiene otra función?
|
|
|
En línea
|
|
|
|
cobein
|
Debug.Print Imprime un dato en el Debug o Inmediato o como quieras llamarlo (Ctrl + G para abrirlo)
Not InStr son 2 cosas Not es simplemente una negacion Not 1 = 0 es lo mismo que 1 <> 0
Y Instr es para bucar una cadena dentro de otra.
|
|
|
En línea
|
|
|
|
dimitrix
|
Mmm no entendí eso de
"Debug.Print Imprime un dato en el Debug o Inmediato o como quieras llamarlo (Ctrl + G para abrirlo)"
¿Cuando hay que hacer lo de Crtl + G?
|
|
|
En línea
|
|
|
|
|
|