Código de FoxPro/Visual FoxPro - Justificar texto

Versión 1
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 21 de Junio del 2004gráfica de visualizaciones de la versión: Versión 1
22.974 visualizaciones desde el 21 de Junio del 2004
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
FUNCTION Justifica(xTexto,xLargo)
 
* Programa: Justifica
* Parámetros: xTexto, xLargo
*                    xTexto= Línea a justificar
*                    xLargo= Largo de la línea
* Escrito: Eduardo Ureña
* País: Costa Rica
* Nota: Si no se desea justificar una línea, deberá terminarla con un punto.
 
xTex=RTRIM(xTexto) && Sólo elimino los 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 &&Cantidad de espacios a intercalar
 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



Comentarios sobre la versión: Versión 1 (4)

26 de Junio del 2004
estrellaestrellaestrellaestrellaestrella
bueno, pero pense que mejor
Responder
18 de Agosto del 2004
estrellaestrellaestrellaestrellaestrella
Me gustó. Es 1 función útil. Quizás (es sólo 1 opinión) te convendría trabajar con 1 largo de cadena por defecto, es decir, que si no se aclara, se justifique a 80 caracteres, por ejemplo... pero es útil, gracias.

Saludos.

Martín
Responder
11 de Octubre del 2004
estrellaestrellaestrellaestrellaestrella
Muy bueno el código, pero solo funciona para variables de texto de cadenas...cierto?..
Se pordía trabajr con campos memo (imprimir texto continuo en una o dos paginas) ???

Gracias.
Responder
13 de Junio del 2005
estrellaestrellaestrellaestrellaestrella
Excelente!!!!!!!!
Felicidades sigue asi......
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s1066