Tema: FAQ's de VB6
Ver Mensaje Individual
  #77 (permalink)  
Antiguo 08/07/2005, 01:09
zabait
 
Fecha de Ingreso: mayo-2005
Mensajes: 93
Antigüedad: 18 años, 11 meses
Puntos: 1
Funciones para formatear texto

Problema:
Muchas veces necesitamos formatear un texto con unos caracteres especiales o simplemente metiendo espacios en blanco.

Solución:
Las funciones siguientes lo realizan de una forma rápida y eficazmente.
PADL -> Inserta los caracteres por la izquierda
PADR -> Inserta los caracteres por la derecha
PADC -> Inserta caracteres por derecha e izquierda -> centra el texto

Parámetros:
CADENA: String que queremos formatear
Longitud: Longitud final del string después de formatearlo
Caracter: Caracter que se desea utilizar para rellenar hast ala longitud anterior

Uso:
- Ej. Código artículo nº 46 pero que debería mostrarse 00046
- También lo uso para "esconder" información en los listbox -> aumenta la funcionalidad, ya que en la misma línea tengo siempre la descripción y el código correspondiente de una tabla determinada. Siempre sabré en qué posiciones se encuentra la descripción y el código (Recomendación: font del listbox = Courier [es letra monoespaciada])

Nota:
Si no se especifica el caracter que se desea insertar, inserta directamente espacios en blanco.
Si el tamaño de la cadena es mayor que la longitud, no hace nada, ya que no existe espacio para insertar los datos.

Funciones:

Function PadL(CADENA, Longitud, Optional caracter) If IsMissing(caracter) Then caracter = " "
If Longitud < Len(CADENA) Then
PadL = Left(CADENA, Longitud)
Else
PadL = Right(String(Longitud, caracter) & CADENA, Longitud)
End If
End Function


Function PadR(CADENA, Longitud, Optional caracter)
If IsMissing(caracter) Then caracter = " "
If Longitud < Len(CADENA) Then
PadR = Left(CADENA, Longitud)
Else
PadR = Left(CADENA & String(Longitud, caracter), Longitud)
End If
End Function


Function PadC(CADENA, Longitud As Integer, Optional caracter)
Dim LadoI As Integer, LadoD As Integer
If IsMissing(caracter) Then caracter = " "

If Longitud < Len(CADENA) Then
PadC = Left(CADENA, Longitud)
Else

LadoI = Format(((Longitud - Len(IIf(IsNull(CADENA), "", CADENA))) / 2), "0")
LadoD = Longitud - (Len(IIf(IsNull(CADENA), "", CADENA)) + LadoI)

PadC = String(LadoI, caracter) & CADENA & String(LadoD, caracter)

End If

End Function
__________________
No te hubieran dado la capacidad de soñar sin darte también la posibilidad de convertir tus sueños en realidad