Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: dimitrix en 19 Mayo 2008, 12:16 pm



Título: Función que si "encuentra" haga una acción
Publicado por: dimitrix en 19 Mayo 2008, 12:16 pm
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.


Título: Re: Función que si "encuentra" haga una acción
Publicado por: cobein en 19 Mayo 2008, 13:03 pm
Código:
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


Título: Re: Función que si "encuentra" haga una acción
Publicado por: seba123neo en 19 Mayo 2008, 13:07 pm
Hola, sin if,usa Case  :P


Título: Re: Función que si "encuentra" haga una acción
Publicado por: cobein en 19 Mayo 2008, 13:11 pm
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


Título: Re: Función que si "encuentra" haga una acción
Publicado por: dimitrix en 19 Mayo 2008, 13:17 pm
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:

Código
  1. Option Explicit
  2.  
  3. Private Sub Command1_Click()
  4.    'Si no encuentra la letra "a" pasa abajo
  5.    If Not InStr(1, Text1, "a") = 0 Then
  6.        MsgBox "Econtré la letra a"
  7.    Else
  8.  
  9.        MsgBox "No encontré la letra a"
  10.  
  11. End If
  12. End Sub
  13.  

Solo por curiosidad seba123neo, ¿Cómo sería con "Case"? Nunca está de más aprender.


Título: Re: Función que si "encuentra" haga una acción
Publicado por: cobein en 19 Mayo 2008, 13:29 pm
Código:
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


Título: Re: Función que si "encuentra" haga una acción
Publicado por: seba123neo en 19 Mayo 2008, 13:41 pm
a listo,ahora caigo  :),pues algo asi:

Código:
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.


Título: Re: Función que si "encuentra" haga una acción
Publicado por: dimitrix en 19 Mayo 2008, 15:49 pm
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?


Título: Re: Función que si "encuentra" haga una acción
Publicado por: cobein en 19 Mayo 2008, 18:13 pm
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.


Título: Re: Función que si "encuentra" haga una acción
Publicado por: dimitrix en 19 Mayo 2008, 18:18 pm
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?


Título: Re: Función que si "encuentra" haga una acción
Publicado por: FaiF (A¥åHøRå) en 19 Mayo 2008, 18:30 pm
Citar
¿Cuando hay que hacer lo de Crtl + G?
Cuando das al "PLAY!" para probar tu aplicacion y debuggearla xD.

Te saldría algo así:
(http://img395.imageshack.us/img395/8453/upei2.jpg)

salu2  ;)


Título: Re: Función que si "encuentra" haga una acción
Publicado por: seba123neo en 19 Mayo 2008, 18:36 pm
InStr te devuelve un resultado(integer)si es 0 es porque no encontro la cadena a buscar y si es diferente de 0 te devuelve la posicion de la palabra a buscar...

saludos.


Título: Re: Función que si "encuentra" haga una acción
Publicado por: dimitrix en 19 Mayo 2008, 18:42 pm
Ok, ya entendí todo, gracias y disculpen las molestias.