none
Generar espacios antes de una palabra. RRS feed

  • Pregunta

  • Saludos amigos del foro, les traigo un inconveniente, lo que quiero hacer es que de acuerdo a la cantidad que le ingrese al PadLeft me genere espacios en blanco para luego asi grabarlo en mi tabla, ahora le he puesto 4 pero no funciona, alguien me podra ayudar por favor, se los agradezco de antemano,

    rudolf heiner.

    CODIGO: Dim nom As String = UCase(txtNombre.Text).PadLeft(4, " ") 

                

    martes, 19 de julio de 2016 20:07

Respuestas

  • Hola Rudolf Heiner,

    Lo que haces con el PadLeft es darle una longitud de 4, y si el valor txtNombre.Text devuelve un valor menor, le agrega el espacio para llenar la longitud.

    Para agregar un espacio a una cadena puedes usar Space(1).

    '4 espacios y el valor
     Dim valor As String = String.Concat(Space(4), txtNombre.Text)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Rudolf Heiner martes, 19 de julio de 2016 20:30
    martes, 19 de julio de 2016 20:23
  • Rudolf Heiner,

    Considera que el método PadLeft() inserta el caracter indicado hasta que la longitud de la cadena sea la que indicas como primer parámetro del método, es decir, si el valor del objeto txtNombre.Text es mayor a 4 caracteres no verás los 4 caracteres de espacio al inicio.

    Si lo que buscas es que sin importar la longitud del nombre tengas los espacios al inicio puedes concatenar los valores:

    'Opción 1: sólo si la longitud del valor es menor a 4 caracteres
    Dim nom1 As String = txtNombre.Text.ToUpper().PadLeft(4, " "C)
    
    'Opción 2: concatenas 4 espacios en blanco al inicio de cada valor
    Dim nom2 As String = String.Format("    {0}", txtNombre.Text.ToUpper())

    Por otro lado, la base de datos no debería almacenar un valor con dicho formato, deberías realizar el formato cuando presentes los datos en caso lo requieras.

    Si no es lo que esperas, te recomiendo que des mayores detalles de lo que necesitas.

    • Marcado como respuesta Rudolf Heiner martes, 19 de julio de 2016 20:30
    martes, 19 de julio de 2016 20:21
  • Gracias Willams y Joel por responder, tome la opcion de Joel y funciona perfectamente, gracias!

    saludos,

    rudolf heiner.

    • Marcado como respuesta Rudolf Heiner martes, 19 de julio de 2016 20:32
    martes, 19 de julio de 2016 20:32

Todas las respuestas

  • Rudolf Heiner,

    Considera que el método PadLeft() inserta el caracter indicado hasta que la longitud de la cadena sea la que indicas como primer parámetro del método, es decir, si el valor del objeto txtNombre.Text es mayor a 4 caracteres no verás los 4 caracteres de espacio al inicio.

    Si lo que buscas es que sin importar la longitud del nombre tengas los espacios al inicio puedes concatenar los valores:

    'Opción 1: sólo si la longitud del valor es menor a 4 caracteres
    Dim nom1 As String = txtNombre.Text.ToUpper().PadLeft(4, " "C)
    
    'Opción 2: concatenas 4 espacios en blanco al inicio de cada valor
    Dim nom2 As String = String.Format("    {0}", txtNombre.Text.ToUpper())

    Por otro lado, la base de datos no debería almacenar un valor con dicho formato, deberías realizar el formato cuando presentes los datos en caso lo requieras.

    Si no es lo que esperas, te recomiendo que des mayores detalles de lo que necesitas.

    • Marcado como respuesta Rudolf Heiner martes, 19 de julio de 2016 20:30
    martes, 19 de julio de 2016 20:21
  • Hola Rudolf Heiner,

    Lo que haces con el PadLeft es darle una longitud de 4, y si el valor txtNombre.Text devuelve un valor menor, le agrega el espacio para llenar la longitud.

    Para agregar un espacio a una cadena puedes usar Space(1).

    '4 espacios y el valor
     Dim valor As String = String.Concat(Space(4), txtNombre.Text)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Rudolf Heiner martes, 19 de julio de 2016 20:30
    martes, 19 de julio de 2016 20:23
  • Gracias Willams y Joel por responder, tome la opcion de Joel y funciona perfectamente, gracias!

    saludos,

    rudolf heiner.

    • Marcado como respuesta Rudolf Heiner martes, 19 de julio de 2016 20:32
    martes, 19 de julio de 2016 20:32