Publicado el 4 comentarios

Alinear y Centrar el texto del ticket con PadC, PadL y PadR

Alinear_centrar_texto_mybusinessposEn este ejemplo veremos cómo alinear el texto de un ticket con las funciones

  • PadL(cadenaTexto,Longitud). Rellena de espacios a la izquierda; Alineación a la Derecha
  • PadR(cadenaTexto,Longitud). Rellena de espacios a la derecha; Alineación a la Izquierda
  • PadC(cadenaTexto,Longitud). Rellena de espacios al centro; Alineación Centrado


Para lograrlo, crearemos tres funciones, aunque PadL ya viene por default, aquí la colocaremos.

Sub Main()
'La letra posterior a PAD es el lado que se rellenará de espacios
a = padL ("Frase de prueba",40) 'Relleno IZQUIERDO. Alinea a la derecha
b = PadC ("Frase de prueba",40) 'Ambos lados. Alinear al centro
c = PadR ("Frase de prueba",40) 'Relleno DERECHO. Alineación a la izquierda

mymessage "PadL: '" & a & "'" & vbcrlf & _
"PadC: '" & b & "'" & vbcrlf &_
"PadR: '" & c & "'"

End Sub

'PADL() Alineación a la DERECHA inserta los caracteres de relleno a la Izquierda
Function PadL(cadena,nLongitud)
dim clen
dim temp
dim char
char = " " 'espacio en blanco
on error resume next
'Tomamos la cadena enviada en el parámetro
'eliminando los chares vacios izq-dch
temp = trim(cadena)
clen = len(temp)
for n=1 to nLongitud
char = char & " "
Next

'Analizamos si la nLongitud justificada es menos
'que la propia cadena enviada en parámetro.
if clen < nLongitud then temp = mid(char,1,nLongitud - clen) & temp 'Alineación a la Derecha end if PadL = temp end function 'PADR() Alineación a la IZQUIERDA inserta los caracteres de relleno a la derecha Function PadR(cadena,nLongitud) dim clen dim temp char = " " 'espacio en blanco on error resume next 'Tomamos la cadena enviada en el parámetro 'eliminando los chares vacios izq-dch temp = trim(cadena) clen = len(temp) for n=1 to nLongitud char = char & " " Next 'Analizamos si la nLongitud justificada es menos 'que la propia cadena enviada en parámetro. if clen < nLongitud then temp = temp & mid(char,1,nLongitud - clen) 'Alineación a la Izquierda end if PadR = temp end function 'PADC() Alineación al CENTRO inserta los caracteres de relleno a ambos lados Function PadC(cadena,nLongitud) dim clen dim temp char = " " 'espacio en blanco 'on error resume next 'Tomamos la cadena enviada en el parámetro 'eliminando los chares vacios izq-dch temp = trim(cadena) clen = len(temp) for n = 1 to nLongitud char = char & " " Next 'Espacios al lado Izquierdo nEspaciosA = formato((nLongitud - clen)/2 , "#.0") DondeEstaElPunto = clAt( ".", nEspaciosA ) - 1 'Espacios al lado derecho nEspaciosA = mid(nEspaciosA,1,DondeEstaElPunto) nEspaciosB = nLongitud -clen - nEspaciosA 'Analizamos si la nLongitud justificada es menos 'que la propia cadena enviada en parámetro. if clen < nLongitud then temp = mid(char,1,nEspaciosA) & _ temp & _ mid(char,1,nEspaciosB) 'Alineación a la Izquierda end if PadC = temp end function

Espero sea de utilidad estas funciones que dejo a su disposición en espera de que correspondan con un pomo para seguir inspirados.
Saludos
José Félix