Programación General > Visual Basic 6.0 e inferiores

 Insertar una cadena en otra

(1/1)

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.

Jimbenit:

--- 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.
--- Fin de la cita ---
Una opcion es rellenar la cadena con espacios en caso de que sea una cadena mas corta...

por ejemplo:


--- Código: Visual Basic ---        Dim Cadena As String        Dim Nro_Caract As Integer         cadena = "Buenos dias"        Nro_Caract = Len(cadena)  'El valor de Nro_Caracter = 11        If Nro_Caract < 80 Then            Cadena = Cadena & Space(80 - Len(Cadena))        End If         MsgBox(Cadena & vbCrLf & Len(Cadena))   algo asi.....

Nebire:
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 --- Private Sub Command1_Click()    Dim Cadena As String * 80     Dim subC As String    Dim k as byte     ' caso 1 se asigna una cadena con menos caracteres, el resto queda relleno de espacios.    Cadena = "Hola_"    Cadena = Replace(Cadena, " ", "4")  'remplazamos los espacios libres por 4 para que se vea la longitud total    MsgBox Len(Cadena) & " " & Cadena        'caso 2 cadena vacía: ahora está 'vacía' con 80 caracteres de espacio.    Cadena = ""    MsgBox Len(Cadena) & " " & Cadena        ' 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    For k = 1 To 100  ' 100 * 5= caracteres        subC = subC & "Hola_"    Next    Cadena = subC    MsgBox Len(subC) & " " & subC & vbcrlf & vbcrlf & Len(Cadena) & " " & CadenaEnd Sub   

F_Tanori:
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 ---Function LPad(Cadena As String, Longitud As Integer, Optional Caracter = " ")    LPad = Right(Replace(Space(Longitud + 1), " ", Caracter) & Cadena, Longitud + 1)End Function Function RPad(Cadena As String, Longitud As Integer, Optional Caracter = " ")    RPad = Left(Cadena & Replace(Space(Longitud + 1), " ", Caracter), Longitud + 1)End Function  

Saludos

kelmax:
Muchas gracias a los dos su ayuda me ayudo era justo lo que necesitaba gracias.

Navegación

[0] Índice de Mensajes

Ir a la versión completa