• Lunes 29 de Abril de 2024, 05:47

Autor Tema:  Insertar una cadena en otra  (Leído 2080 veces)

kelmax

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Insertar una cadena en otra
« en: Jueves 1 de Octubre de 2009, 23:13 »
0
El problema es el siguiente necesito que la cadena tenga un largo fijo (80) y el valor que trae es variable, como puedo hacer para que la cadena siempre tenga el largo que necesito.

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Re: Insertar una cadena en otra
« Respuesta #1 en: Viernes 2 de Octubre de 2009, 00:01 »
0
Cita de: "kelmax"
El problema es el siguiente necesito que la cadena tenga un largo fijo (80) y el valor que trae es variable, como puedo hacer para que la cadena siempre tenga el largo que necesito.
Una opcion es rellenar la cadena con espacios en caso de que sea una cadena mas corta...

por ejemplo:

Código: Visual Basic
  1.         Dim Cadena As String
  2.         Dim Nro_Caract As Integer
  3.  
  4.         cadena = "Buenos dias"
  5.         Nro_Caract = Len(cadena)  'El valor de Nro_Caracter = 11
  6.         If Nro_Caract < 80 Then
  7.             Cadena = Cadena & Space(80 - Len(Cadena))
  8.         End If
  9.  
  10.         MsgBox(Cadena & vbCrLf & Len(Cadena))
  11.  
  12.  
  13.  
algo asi.....


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Insertar una cadena en otra
« Respuesta #2 en: Viernes 2 de Octubre de 2009, 00:44 »
0
Es aún más sencillo que el código que pone Jimbenit...
Basta declarar la cadena con el tamaño deseado así queda fija: Dim Cadena As String * 80
ejemplo con los 3 casos que se pueden dar...
Código: Visual Basic
  1.  
  2. Private Sub Command1_Click()
  3.     Dim Cadena As String * 80
  4.  
  5.     Dim subC As String
  6.     Dim k as byte
  7.  
  8.     ' caso 1 se asigna una cadena con menos caracteres, el resto queda relleno de espacios.
  9.     Cadena = "Hola_"
  10.     Cadena = Replace(Cadena, " ", "4")  'remplazamos los espacios libres por 4 para que se vea la longitud total
  11.     MsgBox Len(Cadena) & " " & Cadena
  12.    
  13.     'caso 2 cadena vacía: ahora está 'vacía' con 80 caracteres de espacio.
  14.     Cadena = ""
  15.     MsgBox Len(Cadena) & " " & Cadena
  16.    
  17.     ' caso 3 cadena más larga que el tamaño asignado a la cadena: se trunca al tamaño despreciando los caracteres de la derecha que exceden
  18.     For k = 1 To 100  ' 100 * 5= caracteres
  19.         subC = subC & "Hola_"
  20.     Next
  21.     Cadena = subC
  22.     MsgBox Len(subC) & " " & subC & vbcrlf & vbcrlf & Len(Cadena) & " " & Cadena
  23. End Sub
  24.  
  25.  
  26.  
«Ma non troppo»
----> ModoVacaciones = False<----

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Insertar una cadena en otra
« Respuesta #3 en: Viernes 2 de Octubre de 2009, 18:41 »
0
El metodo mas efectivo seria el propuesto por Nebire definiendo la logitud en la cadena, el de Jimbenit no es malo. y como extra tambien te propongo uno

Código: Visual Basic
  1. Function LPad(Cadena As String, Longitud As Integer, Optional Caracter = " ")
  2.     LPad = Right(Replace(Space(Longitud + 1), " ", Caracter) & Cadena, Longitud + 1)
  3. End Function
  4.  
  5. Function RPad(Cadena As String, Longitud As Integer, Optional Caracter = " ")
  6.     RPad = Left(Cadena & Replace(Space(Longitud + 1), " ", Caracter), Longitud + 1)
  7. End Function
  8.  
  9.  


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

kelmax

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Insertar una cadena en otra
« Respuesta #4 en: Miércoles 7 de Octubre de 2009, 15:35 »
0
Muchas gracias a los dos su ayuda me ayudo era justo lo que necesitaba gracias.