FoxPro/Visual FoxPro - Justificar texto

   
Vista:

Justificar texto

Publicado por Ernesto Hernandez (4632 intervenciones) el 13/11/2007 05:12:51
.FUNCTION Justifica(xTexto,xLargo)
* Parámetros: xTexto, xLargo
* xTexto= Línea a justificar
* xLargo= Largo de la línea

xTex=RTRIM(xTexto) && Elimina espacios a la derecha
IF EMPTY(xTex) .OR. RIGHT(xTex,1)="."
Cad=xTex
ELSE
J=0
Pal=""
FOR xI=1 TO LEN(xTex)
Let=SUBSTR(xTex,xI,1)
IF Let=" " .OR. xI=LEN(xTex) &&espacio o final de palabra
J=J+1
DIME xVector(J)
IF xI=LEN(xTex)
Pal=Pal+Let
ENDIF
xVector(J)=Pal
Pal=""
ELSE
Pal=Pal+Let
ENDIF
NEXT xI
* Calculando el largo de la cadena sin tomar en cuenta espacios
Lar=0
FOR xI=1 TO Alen(xVector,1) &&Cantidad de filas
Lar=Lar+LEN(xVector(xI))
NEXT xI
Conteo=xLargo-Lar &&espacios
Esp=ALEN(xVector,1)-1 &&Espacios entre palabras viables
xEsp=Conteo/Esp &&Número aproximado de espacios a intercalar entre palabras
xxEsp=INT(xEsp)
EspFal=(xEsp-xxEsp)*Esp
Cad=""

FOR xI=1 TO ALEN(xVector,1)-1
IF xI<=EspFal
Vac=SPACE(xxEsp)+SPACE(1)
ELSE
Vac=SPACE(xxEsp)
ENDIF
Cad=Cad+xVector(xI)+Vac

NEXT xI
Cad=Cad+xVector(ALEN(xVector,1))
ENDIF
RETURN Cad
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder