elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:57  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Extraer string entre "[" y "]"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Extraer string entre "[" y "]"  (Leído 656 veces)
extreme69

Desconectado Desconectado

Mensajes: 166


Be BlackHat but don't forget your principles.


Ver Perfil
Extraer string entre "[" y "]"
« en: 17 Septiembre 2011, 01:35 »

Tengo:

Código:
asd = aitheoiethi[BLABLABLA]taihoithaoihtoea

Y necesito "BLABLABLA" en la variable asd2.

Probé con Mid, Split, Left, Right, pero en todos los casos tengo que saber las posiciones, y no sé cuantos caracteres va a tener "BLABLABLA" ni cuantos caracteres hay antes ni después.

¿Será que primero tengo que ver en que posición del string está el "[", luego hacer lo mismo con el "]" y una vez que sé las posiciones hacer un mid? ¿o hay alguna manera más fácil/rápida?





« Última modificación: 17 Septiembre 2011, 01:37 por extreme69 » En línea

DarkMatrix

Desconectado Desconectado

Mensajes: 125


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Re: Extraer string entre "[" y "]"
« Respuesta #1 en: 17 Septiembre 2011, 01:51 »

Código
Public Function StrBetween(Cadena As String, SubCadena1 As String, Subcadena2 As String) As String
 
   Dim Pos1 As Integer, Pos2 As Integer
 
   Pos1 = InStr(UCase(Cadena), UCase(SubCadena1)) + 1
   Pos2 = InStr(UCase(Cadena), UCase(Subcadena2))
 
   If Pos1 <> 0 And Pos2 <> 0 Then
 
       StrBetween = Mid$(Cadena, Pos1, Pos2 - Pos1)
 
   End If
 
End Function
 
Private Sub Form_Load()
 
   Dim ASd  As String
   Dim Asd2 As String
 
   ASd = "aitheoiethi[BLABLABLAkjhuihui]taihoithaoihtoea"
   Asd2 = StrBetween(ASd, "[", "]")
 
   MsgBox Asd2
 
End Sub

Por hay tambien hay una funcion que hizo Psyke1, espero que te sirva...


« Última modificación: 17 Septiembre 2011, 01:56 por DarkMatrix » En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
extreme69

Desconectado Desconectado

Mensajes: 166


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Extraer string entre "[" y "]"
« Respuesta #2 en: 17 Septiembre 2011, 01:56 »

Excelente, muchas gracias.  ;-)

En línea

BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


Ver Perfil WWW
Re: Extraer string entre "[" y "]"
« Respuesta #3 en: 17 Septiembre 2011, 04:03 »

.

¿Será que primero tengo que ver en que posición del string está el "[", luego hacer lo mismo con el "]" y una vez que sé las posiciones hacer un mid? ¿o hay alguna manera más fácil/rápida?

que comes que adivinas...

Cita: http://visual-coders.herobo.com/blog/?p=1

Código
 
'------------------------------------------------------------------------
' *Function : Text_Between_Words
' *Author   : *PsYkE1*
' *Mail     : vbpsyke1@mixmail.com
' *Date     : 10/4/10
' *Purpose  : It returns the text wich is between two words
' *Recommended Websites :
'       http://foro.rthacker.net/
'       http://InfrAngeluX.Sytes.Net/
'------------------------------------------------------------------------
Option Explicit
Public Function Text_Between_Words(ByVal sTextToAnalyze As String, ByVal sStartWord As String, ByVal sEndWord As String) As String
Dim iPosition1                  As Integer
Dim iPosition2                  As Integer
Dim iStart                      As Integer
   iPosition1 = InStr(sTextToAnalyze, sStartWord)
   If CBool(iPosition1) Then
       iStart = iPosition1 + Len(sStartWord)
       iPosition2 = InStr(iStart, sTextToAnalyze, sEndWord)
       If CBool(iPosition2) Then
           Text_Between_Words = Mid$(sTextToAnalyze, iStart, iPosition2 - iStart)
       End If
   End If
End Function
 
 

Código
 
Debug.Print Text_Between_Words("El contexto es el ámbito de referencia de un texto. ¿Qué entiendo por ámbito de referencia?.", "referencia", "referencia")
 
 

Dulces Lunas!¡.
« Última modificación: 17 Septiembre 2011, 04:07 por BlackZeroX▓▓▒▒░░ » En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Extraer string entre "[" y "]"
« Respuesta #4 en: 17 Septiembre 2011, 06:14 »

Código
Private Sub Form_Load()
MsgBox TextoEntreMedio("aitheoiethi[BLABLABLA]taihoithaoihtoea", "[", "]")
End Sub
 
Private Function TextoEntreMedio(Texto As String, Palabra1 As String, Palabra2 As String)
TextoEntreMedio = Left$(Mid$(Texto, InStr(Texto, Palabra1) + Len(Palabra1)), InStr(Mid$(Texto, InStr(Texto, Palabra1) + Len(Palabra1)), Palabra2) - 1)
End Function
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


Ver Perfil WWW
Re: Extraer string entre "[" y "]"
« Respuesta #5 en: 17 Septiembre 2011, 06:49 »


Código
 
Private Sub Form_Load()
MsgBox TextoEntreMedio("aitheoiethi[BLABLABLA]taihoithaoihtoea", "(", "]")
End Sub
 
 

Dulces Lunas!¡.
En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.005



Ver Perfil WWW
Re: Extraer string entre "[" y "]"
« Respuesta #6 en: 17 Septiembre 2011, 16:30 »

Un poco mejorada:
Código
Option Explicit
 
Public Static Function TextBetweenWords$(ByRef sText$, ByVal sWord1$, ByVal sWord2$)
Dim lPos1&, lPos2&, lStart&
   If LenB(sText) Then
       lPos1 = InStrB(1, sText, sWord1, vbBinaryCompare)
       If lPos1 Then
           lStart = lPos1 + LenB(sWord1)
           lPos2 = InStrB(lStart, sText, sWord2, vbBinaryCompare)
           If lPos2 Then
               TextBetweenWords = MidB$(sText, lStart, lPos2 - lStart)
           End If
       End If
   End If
End Function
 
 
Private Sub Form_Load()
   Debug.Print TextBetweenWords("qwertysdfcv [raul338 es feo] prueba", "[", "]")
End Sub

Devuelve:
Código:
raul338 es feo


Y con RegExp:
Código:
\[([^\[]+)\]

DoEvents! :P
« Última modificación: 17 Septiembre 2011, 16:53 por Psyke1 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines