| 4D v18TEXT TO ARRAY | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 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 v18)
	
	
	
	
	
 Adicionar um comentário
Adicionar um comentário