none
Leer Cadena Apartir de un caracter hasta otro caracter RRS feed

  • Pregunta

  • Hola

    Tengo una cadena de esta forma

    Dim cadena As String = "[BANCO LATINO#12345678912356478963#PARRA CARLOS]" & _
    
    "[BANCO AMERICANO#12345678912356478963#PEDRO GUEDEZ]" & _
    
    "[MANHATAN BANK#12345678912356478963#JOSE MUJICA]" 

    nesecito  obtener lo que esta dentro de los corchetes

    algo asi:

    Dim cad1 As String ="BANCO LATINO#12345678912356478963#PARRA CARLOS"
    Dim cad2 As String ="BANCO AMERICANO#12345678912356478963#PEDRO GUEDEZ"
    Dim cad3 As String ="MANHATAN BANK#12345678912356478963#JOSE MUJICA"



    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    jueves, 15 de octubre de 2015 16:31

Respuestas

  • Hola Efrain Mejias Castillo,

    Puedes hacer lo siguiente:

    Dim cadena As String = "[BANCO LATINO#123][BANCO AMERICANO#12345][MANHATAN BANK#12345]"
    
    Dim cuentas As String() = cadena.Split(New Char() {"["C})
    
    'Las cuentas están en un array
    For Each cuenta As String In cuentas
    	If Not String.IsNullOrEmpty(cuenta) Then
    		MessageBox.Show(cuenta.Substring(0, cuenta.Length - 1))
    	End If
    Next
    
    'Podrías también acceder a ellas por su posición
    Dim cadena1 As String = cuentas(1).Substring(0, cuentas(1).Length - 1)
    Dim cadena2 As String = cuentas(2).Substring(0, cuentas(2).Length - 1)
    Dim cadena3 As String = cuentas(3).Substring(0, cuentas(3).Length - 1)

    jueves, 15 de octubre de 2015 16:43
  • "Efrain Mejias Castillo" preguntó:

    > nesecito  obtener lo que esta dentro de los corchetes

    Hola, Efrain:

    Lo que tienes que hacer es utilizar el método Split de la clase System.String pasándole como caracteres delimitadores una matriz de Char que contenga los caracteres de apertura y cierre de los corchetes.

    Para ello, te construyes tu propia función que te devolverá una matriz con las cadenas de caracteres que deseas obtener:

        Friend Shared Function ObtenerCadenas(cadena As String) As String()
    
            If (String.IsNullOrEmpty(cadena)) Then Return Nothing
    
            Dim separator As Char() = {"["c, "]"c}
    
            ' Indicamos que no nos interesa que en la matriz se incluyan
            ' las cadenas de longitud cero.
            Return cadena.Split(separator, StringSplitOptions.RemoveEmptyEntries)
    
        End Function

    Y llamarías a la función ObtenerCadenas pasándole la cadena cuyas subcadenas deseas obtener:

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim cadena As String =
                "[BANCO LATINO#12345678912356478963#PARRA CARLOS]" &
                "[BANCO AMERICANO#12345678912356478963#PEDRO GUEDEZ]" &
                "[MANHATAN BANK#12345678912356478963#JOSE MUJICA]"
    
            Dim cadenas As String() = ObtenerCadenas(cadena)
    
            For Each item As String In cadenas
                MessageBox.Show(item)
            Next
    
        End Sub

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    jueves, 15 de octubre de 2015 17:49
    Moderador

Todas las respuestas

  • Hola Efrain Mejias Castillo,

    Puedes hacer lo siguiente:

    Dim cadena As String = "[BANCO LATINO#123][BANCO AMERICANO#12345][MANHATAN BANK#12345]"
    
    Dim cuentas As String() = cadena.Split(New Char() {"["C})
    
    'Las cuentas están en un array
    For Each cuenta As String In cuentas
    	If Not String.IsNullOrEmpty(cuenta) Then
    		MessageBox.Show(cuenta.Substring(0, cuenta.Length - 1))
    	End If
    Next
    
    'Podrías también acceder a ellas por su posición
    Dim cadena1 As String = cuentas(1).Substring(0, cuentas(1).Length - 1)
    Dim cadena2 As String = cuentas(2).Substring(0, cuentas(2).Length - 1)
    Dim cadena3 As String = cuentas(3).Substring(0, cuentas(3).Length - 1)

    jueves, 15 de octubre de 2015 16:43
  • gracias Willamn ...no me habia percatado de que podia hacer el split

    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    jueves, 15 de octubre de 2015 17:48
  • "Efrain Mejias Castillo" preguntó:

    > nesecito  obtener lo que esta dentro de los corchetes

    Hola, Efrain:

    Lo que tienes que hacer es utilizar el método Split de la clase System.String pasándole como caracteres delimitadores una matriz de Char que contenga los caracteres de apertura y cierre de los corchetes.

    Para ello, te construyes tu propia función que te devolverá una matriz con las cadenas de caracteres que deseas obtener:

        Friend Shared Function ObtenerCadenas(cadena As String) As String()
    
            If (String.IsNullOrEmpty(cadena)) Then Return Nothing
    
            Dim separator As Char() = {"["c, "]"c}
    
            ' Indicamos que no nos interesa que en la matriz se incluyan
            ' las cadenas de longitud cero.
            Return cadena.Split(separator, StringSplitOptions.RemoveEmptyEntries)
    
        End Function

    Y llamarías a la función ObtenerCadenas pasándole la cadena cuyas subcadenas deseas obtener:

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim cadena As String =
                "[BANCO LATINO#12345678912356478963#PARRA CARLOS]" &
                "[BANCO AMERICANO#12345678912356478963#PEDRO GUEDEZ]" &
                "[MANHATAN BANK#12345678912356478963#JOSE MUJICA]"
    
            Dim cadenas As String() = ObtenerCadenas(cadena)
    
            For Each item As String In cadenas
                MessageBox.Show(item)
            Next
    
        End Sub

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    jueves, 15 de octubre de 2015 17:49
    Moderador
  • "Efrain Mejias Castillo" escribió:

    > no me habia percatado de que podia hacer el split , lo unico que
    > la cadena queda con ] al final pero esa la quito con un remplace

    ¿Has revisado mi respuesta? Porque es que NO ES NECESARIO que quites el carácter ] con el método Replace.


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    jueves, 15 de octubre de 2015 17:55
    Moderador