Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: 79137913 en 11 Junio 2012, 16:47 pm



Título: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: 79137913 en 11 Junio 2012, 16:47 pm
HOLA!!!

La encontre en un proyecto que estoy desarrollando y por ahi le sirve a alguien.

Busca un string entre otros 2 strings.

Por ejemplo :

Código
  1. Private Sub Form_Load()
  2.    str1 = "hola franco como andas, hola pepe como andas"
  3.    str2 = "hola "
  4.    str3 = " como"
  5.    Debug.Print EntreTextos(str1, str2, str3)
  6.    'imprimira: "franco"
  7.    'como veran solo la primera asi que ojo XD
  8. End Sub
  9.  
  10. Public Function EntreTextos(Text As String, Text1 As String, Text2 As String) As String
  11.    EntreTextos = MidB$(Text, InStrB(Text, Text1) + LenB(Text1), InStrB(Text, Text2) - InStrB(Text, Text1) - LenB(Text1))
  12. End Function
  13.  

GRACIAS POR LEER!!!


Título: Re: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: Elemental Code en 12 Junio 2012, 02:22 am
cheee, el hombre rana se habia sacado una igualita a esa.
Creo que era textbetweenwords

Código
  1. 'by Mr.Frog™
  2. Public Function TextBetweenWords(ByRef strText$, ByRef strWord1$, ByRef strWord2$) As String
  3. Dim lngPos1&, lngPos2&, lngStart&
  4.  
  5.    lngPos1 = InStr(strText, strWord1)
  6.    If lngPos1 Then
  7.        lngStart = lngPos1 + LenB(strWord1) \ 2
  8.        lngPos2 = InStr(lngStart, strText, strWord2)
  9.        If iPosition2 Then
  10.            TextBetweenWords = Mid$(strText, lngStart, lngPos2 - lngStart)
  11.        End If
  12.    End If


Título: Re: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: 79137913 en 12 Junio 2012, 14:18 pm
HOLA!!!

Ni sabia pero mi funcion es mas rapida y mas corta!

GRACIAS POR LEER!!!


Título: Re: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: Psyke1 en 12 Junio 2012, 16:18 pm
Toma, aquí te dejo un par de errores:

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5.    MsgBox EntreTextos("aitheoiethi[BLABLABLA]taihoithaoihtoea", "(", "]")
  6.    MsgBox EntreTextos("aitheoiethi[BLABLABLA)taihoithaoihtoea", ")", "[")
  7. End Sub
  8.  
  9. Public Function EntreTextos(Text As String, Text1 As String, Text2 As String) As String
  10.    EntreTextos = MidB$(Text, InStrB(Text, Text1) + LenB(Text1), InStrB(Text, Text2) - InStrB(Text, Text1) - LenB(Text1))
  11. End Function

Más rápida con cadenas largas habría que verlo. :silbar:

DoEvents! :P


Título: Re: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: 79137913 en 12 Junio 2012, 17:55 pm
HOLA!!!

No es mi culpa que ingreses mal los conceptos.

Fijate que en el primero no hay (

y en el segundo no existe nada entre ")" y "[" (lo que no quiere decir que exista o no algo entre "[" y ")" )


GRACIAS POR LEER!!!


Título: Re: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: Psyke1 en 12 Junio 2012, 18:00 pm
Hombre, ya sé que ingresé mal, lo hice queriendo. Una función no puede fallar en ningún caso. :rolleyes: En los ejemplos que te puse debería de devolver un String vacío.
Imagina que tengo el HTML de una web, quiero recortar un trozo, han cambiado algo en el code y tu función nos devuelve algo que no es correcto o nos crashea (cómo en el segundo caso). :-(

DoEvents! :P


Título: Re: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: 79137913 en 12 Junio 2012, 18:11 pm
HOLA!!!

Ok lo hacemos asi

GRACIAS POR LEER!!!


Título: Re: [FUNCION] EntreTextos Busca string entre otras 2
Publicado por: 79137913 en 12 Junio 2012, 18:17 pm
HOLA!!!

Aca tenes la solucion:
Código
  1. Public Function EntreTextos(Text As String, Text1 As String, Text2 As String) As String
  2.    Dim a As Long
  3.    a = InStrB(Text, Text1)
  4.    If a Then
  5.        Dim b As Long
  6.        b = InStrB(Text, Text2)
  7.        If b Then
  8.            Dim c As Long
  9.            Dim d As Long
  10.            c = LenB(Text1)
  11.            d = InStrB(Text, Text2) - a - c
  12.            If d > 0 Then
  13.                EntreTextos = MidB$(Text, a + c, d)
  14.    End If
  15.    End If
  16.    End If
  17. End Function

GRACIAS POR LEER!!!