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 textoQueremos 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 ifUm 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)
Adicionar um comentário