Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
TEXT TO ARRAY
|
TEXT TO ARRAY ( varText ; arrText ; ancho ; nomFuente ; tamFuente {; estiloFuente {; *}} ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
varText | Texto |
![]() |
Texto original a dividir | |||||
arrText | Array texto |
![]() |
Array que contiene el texto dividido en palabras o líneas | |||||
ancho | Entero largo |
![]() |
Ancho máximo de la cadena(en píxeles) | |||||
nomFuente | Texto |
![]() |
Nombre de la fuente | |||||
tamFuente | Entero largo |
![]() |
Tamaño de la fuente | |||||
estiloFuente | Entero largo |
![]() |
Estilo de fuente | |||||
* | Operador |
![]() |
Si se pasa = interpretar el texto como multistyle | |||||
El comando TEXT TO ARRAY transforma una variable texto en un array texto. El texto original (con estilo o no) se divide y cada parte se convierte en un elemento del array arrText que es devuelto por el comando. Este comando se puede utilizar por ejemplo para llenar las páginas o las columnas con texto de un tamaño fijo.
El texto original se divide en "palabras", basado en un tamaño de línea definido por los parámetros del comando y teniendo en cuenta todos los estilos utilizados.
En el parámetro varText, pase el texto a dividir en elementos de array. Este texto puede ser o no multiestilo. Algunos parámetros se ignoran cuando el texto es multiestilo.
Pase en el parámetro arrText el nombre del array a llenar con el texto dividido.
En el parámetro ancho, pase un tamaño en píxeles que indique la longitud máxima de línea a medir para dividir el texto. Para todo el texto, el comando evaluara el número máximo de palabras que pueden "encajar" en este ancho en función de los atributos gráficos del texto (fuente, estilo).
Cada elemento del array debe contener al menos una palabra. Si el ancho pasado es demasiado pequeño para que la regla de división se respete estrictamente, el array se llena lo más aproximadamente posible de acuerdo a los parámetros y la variable OK toma el valor 0. Por ejemplo, si pasa un ancho de 3 píxeles, es probable que la mayoría de las palabras sean más grandes que esta longitud. En este caso, la variable OK toma el valor 0.
Esto también significa que el tamaño máximo teórico del array devuelto es igual al número de palabras presentes en varText.
En los parámetros nomFuente y tamFuente, pase el nombre y el tamaño de la fuente con la cual varText debe ser evaluado por el comando para hacer la división. Estos parámetros son obligatorios en el caso de texto sin formato.
En el parámetro estiloFuente, pase una o más constantes del tema Estilos de fuente.
Constante | Tipo | Valor |
Bold | Entero largo | 1 |
Italic | Entero largo | 2 |
Plain | Entero largo | 0 |
Underline | Entero largo | 4 |
Queremos dividir un texto multistyle en líneas con un tamaño máximo de 200 píxeles:
TEXT TO ARRAY(theText;TextArray;200;"Arial";20;Normal;*)
// los atributos Arial, 20 y Normal sólo se tienen en cuenta si no están definidos en el texto
Queremos dividir un texto en líneas de un tamaño máximo de 350 píxeles en fuente Bodoni negrita 14. Como el comando no funciona correctamente si la fuente no está disponible, es útil verificar su presencia:
ARRAY TEXT($FontList;0)
FONT LIST($FontList)
$Font:="Bodoni"
$p:=Find in array($FontList;$Font)
If($p>0)
TEXT TO ARRAY(theText;TextArray;350;"Bodoni";14;Bold)
Else
// utilizar otra fuente
End if
Un texto multiestilo debe imprimirse sin estilo en la fuente Arial normal 12 con un ancho máximo de 600 píxeles:
// transformamos el texto multiestilo en texto bruto
$RawText:=OBJECT Get plain text(vText)
// llenamos el array
TEXT TO ARRAY($RawText;TextArray;600;"Arial";12)
Debe imprimir en un área de 400 píxeles de largo un texto de un máximo de 80 líneas con la fuente más grande posible (sin exceder los 24 puntos). Puede escribir:
ARRAY TEXT(TextArray;0)
$Size:=24
Repeat
TEXT TO ARRAY($RawText;TextArray;400;"Arial";$Size)
$Size:=$Size-1
$n:=Size of array(TextArray)
Until($n<=80)
Producto: 4D
Tema: Arrays
Número
1149
Creado por: 4D v13
Manual de lenguaje 4D ( 4D v20)
Manual de lenguaje 4D ( 4D v20.1)
Manual de lenguaje 4D ( 4D v20.2)
Manual de lenguaje 4D ( 4D v20.3)
Manual de lenguaje 4D ( 4D v20.4)
Manual de lenguaje 4D ( 4D v20.5)
Manual de lenguaje 4D ( 4D v20.6)