4D v16.3TEXT TO ARRAY |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
TEXT TO ARRAY
|
TEXT TO ARRAY ( varText ; arrText ; largo ; nomFonte ; tamFonte {; estiloFonte {; *}} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
varText | Texto |
![]() |
Texto original a dividir | |||||
arrText | Array texto |
![]() |
Array que contém o texto dividido em palavras ou linhas | |||||
largo | Inteiro longo |
![]() |
Largo máximo da cadeia(em pixeles) | |||||
nomFonte | Texto |
![]() |
Nome da fonte | |||||
tamFonte | Inteiro longo |
![]() |
Tamanho da fonte | |||||
estiloFonte | Inteiro longo |
![]() |
Estilo da fonte | |||||
* | Operador |
![]() |
Se passado = interpretar o texto como multistyle | |||||
O comando TEXT TO ARRAY transforma uma variável texto em um array texto. El texto original (com estilo ou não) se divide e cada parte se converte em um elemento do array arrText que é devolvido pelo comando. Este comando se pode utilizar por exemplo para encher as páginas ou as colunas com texto de um tamanho fixo.
O texto original se divide em "palavras", baseado em um tamanho de linha definido pelos parâmetros do comando e tendo em conta todos os estilos utilizados.
No parâmetro varText, passe o texto a dividir em elementos de array. Este texto pode ser ou não multi-estilo. Alguns parâmetros se ignoram quando o texto é multi-estilo.
Passe no parâmetro arrText o nome do array a encher com o texto dividido.
No parâmetro largo, passe um tamanho em pixeles que indique a longitude máxima de linha a ser medida para dividir o texto. Para todo o texto, o comando avaliara o número máximo de palavras que podem "encaixar" neste largo em função dos atributos gráficos do texto (fonte, estilo).
Cada elemento do array deve conter ao menos uma palavra. Se o largo passado é muito pequeno para que a regra de divisão se respeite estritamente, o array se enche o mais aproximadamente possível de acordo aos parâmetros e a variável OK toma o valor 0. Por exemplo, se passa um largo de 3 pixeles, é provável que a maioria das palavras sejam mais grandes que esta longitude. Neste caso, a variável OK toma o valor 0.
Isto também significa que o tamanho máximo teórico do array devolvido é igual ao número de palavras presentes em varText.
Nos parâmetros nomFonte e tamFonte, passe o nome e o tamanho da fonte com a qual varText deve ser avaliado pelo comando para fazer a divisão. Estes parâmetros são obrigatórios no caso de texto sem formato.
No parâmetro estiloFonte, passe uma ou mais constantes do tema Estilos de fonte.
Constante | Tipo | Valor |
Bold | Inteiro longo | 1 |
Italic | Inteiro longo | 2 |
Plain | Inteiro longo | 0 |
Underline | Inteiro longo | 4 |
Queremos dividir um texto multistyle em linhas com um tamanho máximo de 200 pixeles:
TEXT TO ARRAY(theText;TextArray;200;"Arial";20;Normal;*)
// os atributos Arial, 20 e Normal só são tomados em conta se não estão definidos no texto
Queremos dividir um texto em linhas de um tamanho máximo de 350 pixeles em fonte Bodoni negrito 14. Como o comando no funciona corretamente caso a fonte não está disponível, é útil verificar sua presença:
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 outra fonte
End if
Um texto multi-estilo deve imprimir-se sem estilo na fonte Arial normal 12 com um largo máximo de 600 pixeles:
// transformamos o texto multi-estilo em texto bruto
$RawText:=OBJECT Get plain text(vText)
// enchemos o array
TEXT TO ARRAY($RawText;TextArray;600;"Arial";12)
Deve imprimir em uma área de 400 pixeles de largo um texto de um máximo de 80 linhas com a fonte mais grande possível (sem exceder os 24 pontos). Pode escrever:
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)
Produto: 4D
Tema: Arrays
Número
1149
Criado por: 4D v13
Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)