none
Eliminar espacios en blanco dentro de un string alphanumerico

    Question

  • Hola, de 8 campos de tres digitos cada uno de una tabla, hice un string pero algunos campos no tienen nada, entonces mi string se ve poco agradable, en Visual Basic 2008, como puedo eliminar esos campos vacios en mi string?

    Leandro, si estas por estos lados, que seguramente estas, y hablando del Skydrive, lo tube que borrar porque habia dado demasiadas permisiones en mi pc y se podia navegar por todo el disco desde el remoto, al menos yo cuando lo probe varias veces podia navegar por todo el disco en carpetas no declaradas como publicas en el skydrive. 

    Hablamos

    MauricioIvan 
    Thursday, October 29, 2009 12:34 PM

Answers

  • Suponiendo que tienes la siguiente variable alfanumérica

    Dim cadena As String = "123" & "   " & "456" & "   " & "789"
    

    eliminarías los espacios en blanco, sustituyéndolos para una cadena de longitud cero:

    cadena = cadena.Replace(" "c, String.Empty)
    
    MessageBox.Show(cadena)
    
    

     


    Enrique Martínez [MS MVP - VB]
    Thursday, October 29, 2009 2:37 PM
  • hola

     parametrized string with spaces only between “full” parameters?

    veras en el link que usa esta solucion

    string.Format("{0} {1} {2}", first, middle, last).Replace("  "," ")


    o en tu caso seria:

    TextBox1.Text = String.Format("{0} {1} {2}", campo_a, campo_b, campo_c).Replace("  "," ")


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by MauricioIvan Friday, October 30, 2009 10:52 AM
    Thursday, October 29, 2009 3:36 PM
  • Si no deseas que en la cadena resultante aparezcan ESPACIOS VACÍOS ("       "), en mi anterior respuesta ya te he dado la solución.

    Ahora bien, si el valor que recuperas de la tabla es NULL, tienes que detectarlo y NO CONCATENAR dicho valor con la cadena resultante, porque un valor NULL no es un espacio en blanco (" ") ni tampoco una cadena de longitud cero (""); no es nada.





    Enrique Martínez [MS MVP - VB]
    • Marked as answer by MauricioIvan Friday, October 30, 2009 10:52 AM
    Thursday, October 29, 2009 3:39 PM

All replies

  • No entiendo bien la pregunta, pero creo que te refieres a algo parecido a esto.

    SELECT (ISNULL(CAMPO1, '') + ISNULL(CAMPO2,'') + ISNULLL(CAMPOS3, '')) AS CAMPO_GENERICO
    FROM TABLA


    Saludos.

    Anibal.
    Thursday, October 29, 2009 12:44 PM
  • hola

    No comprendi la relacion entre los campos string y la vista agradable.

    O sea estas recuperando datos de uan tabla, bien, y los estas mostrando en controles TextBox ?
    esos serian los string que mencionas ?

    lo que quieres ocultar son campos (TextBoax) en tu formaulario segun tengas o no info desde tu db ?


    Con respecto a skydrive re cuerda quee stas son carpetas remotas, pero no aceden a tu disco local nunca, o sea por asm que se tenga acceso libre a estas carpetas no tienen relacion alguna con tu disco de tu pc
    es pore so que peude publicar libremente, y solo lo que subas alli y en las carpetas publicas se tendra acceso, al resto no
    Usalo con confianza no pasa nada con la seguridad.

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Thursday, October 29, 2009 12:46 PM
  • Suponiendo que tienes la siguiente variable alfanumérica

    Dim cadena As String = "123" & "   " & "456" & "   " & "789"
    

    eliminarías los espacios en blanco, sustituyéndolos para una cadena de longitud cero:

    cadena = cadena.Replace(" "c, String.Empty)
    
    MessageBox.Show(cadena)
    
    

     


    Enrique Martínez [MS MVP - VB]
    Thursday, October 29, 2009 2:37 PM
  • Espero que se vea mas claro:

    8 campos ejemplo  campo_a, campo_b, campo_c, campo_d, campo_e, campo_f, campo_g y el campo_h

    estan en mi tabla definidos como alphanumericos

    pero supongamos que al armar el string dentro de un textbox que los muestra, calquiera de ellos puede no tener informacion  entonces como hago para que haga algo asi como se hacia algun tiempo atras m,as o menos asi :

    Str(Ltrim(campo_a)+ltrim(campo_b+Ltrim(campo_c) etc) , con esto justificaba todo a la izquierda pero habia una instruccion que no recuerdo que entendia que ese campo x estaba vacio por tanto no danaba el string, era algo asi como cuando armas en letras los numero1 cien + 20 veinte (es un ejemplo) para que no se viera el espacion vacio, justificabas todo a la izquierda y el campo vacio no hacia ningun espacio.

    Gracias por la ayuda. Que pasen un muy buen dia

    Thursday, October 29, 2009 3:19 PM
  • Espero que se vea mas claro:

    8 campos ejemplo  campo_a, campo_b, campo_c, campo_d, campo_e, campo_f, campo_g y el campo_h

    estan en mi tabla definidos como alphanumericos

    pero supongamos que al armar el string dentro de un textbox que los muestra, calquiera de ellos puede no tener informacion  entonces como hago para que haga algo asi como se hacia algun tiempo atras m,as o menos asi :

    Str(Ltrim(campo_a)+ltrim(campo_b+Ltrim(campo_c) etc) , con esto justificaba todo a la izquierda pero habia una instruccion que no recuerdo que entendia que ese campo x estaba vacio por tanto no danaba el string, era algo asi como cuando armas en letras los numero1 cien + 20 veinte (es un ejemplo) para que no se viera el espacion vacio, justificabas todo a la izquierda y el campo vacio no hacia ningun espacio.

    Gracias por la ayuda. Que pasen un muy buen dia

    Thursday, October 29, 2009 3:19 PM
  • hola

     parametrized string with spaces only between “full” parameters?

    veras en el link que usa esta solucion

    string.Format("{0} {1} {2}", first, middle, last).Replace("  "," ")


    o en tu caso seria:

    TextBox1.Text = String.Format("{0} {1} {2}", campo_a, campo_b, campo_c).Replace("  "," ")


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by MauricioIvan Friday, October 30, 2009 10:52 AM
    Thursday, October 29, 2009 3:36 PM
  • Si no deseas que en la cadena resultante aparezcan ESPACIOS VACÍOS ("       "), en mi anterior respuesta ya te he dado la solución.

    Ahora bien, si el valor que recuperas de la tabla es NULL, tienes que detectarlo y NO CONCATENAR dicho valor con la cadena resultante, porque un valor NULL no es un espacio en blanco (" ") ni tampoco una cadena de longitud cero (""); no es nada.





    Enrique Martínez [MS MVP - VB]
    • Marked as answer by MauricioIvan Friday, October 30, 2009 10:52 AM
    Thursday, October 29, 2009 3:39 PM