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
Ir a la versión completa