4D v16.3

TEXTE VERS TABLEAU

Accueil

 
4D v16.3
TEXTE VERS TABLEAU

TEXTE VERS TABLEAU 


 

TEXTE VERS TABLEAU ( varTexte ; tabTexte ; largeur ; nomPolice ; taillePolice {; stylePolice {; *}} ) 
Paramètre Type   Description
varTexte  Texte in Texte original à découper
tabTexte  Tableau texte in Tableau contenant le texte découpé en mots ou lignes
largeur  Entier long in Largeur maximale de la chaîne (en pixels)
nomPolice  Texte in Nom de police
taillePolice  Entier long in Taille de police
stylePolice  Entier long in Style de police
Opérateur in Si passé = interpréter le texte en multistyle

La commande TEXTE VERS TABLEAU permet de transformer une variable texte en tableau texte. Le texte d’origine (stylé ou non) est découpé et chaque morceau devient un élément du tableau tabTexte qui est retourné par la commande. Cette commande peut être utilisée par exemple pour remplir des pages ou des colonnes de texte de taille fixe.

Le découpage du texte original est effectué en "mots" à partir d’une taille de ligne définie par les paramètres de la commande et tenant compte des styles utilisés. 

Passez dans varTexte le texte à découper en éléments de tableaux. Ce texte peut être multistyle ou non. Certains paramètres seront ignorés si le texte est multistyle.

Passez dans tabTexte le nom du tableau qui sera rempli par le texte découpé.

Passez dans largeur une taille en pixels indiquant la longueur maximum de ligne à mesurer pour découper le texte. Pour l’ensemble du texte, la commande évaluera le nombre maximum de mots pouvant "tenir" dans cette largeur en fonction des attributs graphiques du texte (police, style).

  • Si le texte est multistyle, les styles du texte original seront pris en compte et les paramètres suivants seront ignorés s’ils sont passés. Dans ce cas, les lignes de texte dans le tableau résultant conserveront leurs styles (afin de pouvoir être imprimées une par une via une variable texte ou alpha par exemple).
  • Si le texte est brut (sans styles), vous devez passer tous les paramètres afin que la commande puisse calculer la longueur des lignes.

Chaque élément du tableau doit contenir au moins un mot. Si la largeur passée est trop faible pour que la règle de découpage soit entièrement respectée, le tableau sera rempli de la façon la plus proche possible des paramètres et la variable OK prendra la valeur 0. Par exemple, si vous passez une largeur de 3 pixels, il est probable que la taille de la plupart des mots sera au-delà de cette longueur. Dans ce cas, la variable OK prendra la valeur 0.
Ce principe implique également que la taille théorique maximale du tableau retourné est égale au nombre de mots présents dans varTexte

Passez dans nomPolice et taillePolice le nom et la taille de la police de caractères avec laquelle varTexte doit être évalué par la commande pour effectuer le découpage. Ces paramètres sont obligatoires dans le cas d’un texte brut. 

Passez dans stylePolice une ou une combinaison de constante(s) du thème Styles de caractères :

Constante Type Valeur
Gras Entier long 1
Italique Entier long 2
Normal Entier long 0
Souligné Entier long 4

Ce paramètre est optionnel ; s’il est omis, le style Normal est utilisé. 

Le paramètre optionnel *, s’il est passé, permet de forcer la prise en compte des paramètres nomPolice, taillePolice et/ou stylePolice pour les textes multistyles lorsque ces paramètres ne sont pas définis dans le texte d’origine. S’ils sont définis dans le texte, les paramètres passés à la commande sont ignorés dans tous les cas.

Nous souhaitons découper un texte multistyle en lignes d’une taille maximale de 200 pixels :

 TEXTE VERS TABLEAU(leTexte;leTabTexte;200;"Arial";20;Normal;*)
  // les attributs Arial, 20, Normal ne seront pris en compte que s’ils ne sont pas définis dans le texte

Nous souhaitons découper un texte brut en lignes d’une taille maximale de 350 pixels en police Bodoni gras 14. Comme la commande ne fonctionne pas correctement si la police n’est pas disponible, il est utile de vérifier sa présence :

 TABLEAU TEXTE($FontList;0)
 LISTE DES POLICES($FontList)
 $Font:="Bodoni"
 $p:=Chercher dans tableau($FontList;$Font)
 Si($p>0)
    TEXTE VERS TABLEAU(leTexte;leTabTexte;350;"Bodoni";14;Gras)
 Sinon
  // utiliser une autre police.
 Fin de si

Un texte multistyle doit être imprimé sans style dans la police Arial normal 12 avec une largeur maximale de 600 pixels :

  // on transforme le texte multistyle en texte brut
 $RawText:=OBJET Lire texte brut(vText)  
  // on remplit le tableau
 TEXTE VERS TABLEAU($RawText;tabTexte;600;"Arial";12)

Vous devez imprimer dans une zone de 400 pixels de large un texte d’un maximum de 80 lignes et ce, avec la plus grande taille de police possible (ne devant pas dépasser 24 points). Vous pouvez écrire :

 TABLEAU TEXTE(tabTexte;0)
 $Taille:=24
 Repeter
    TEXTE VERS TABLEAU($RawText;tabTexte;400;"Arial";$Taille)
    $Taille:=$Taille-1
    $n:=Taille tableau(tabTexte)
 Jusque($n<=80)



Voir aussi  

ST Lire texte
ST Lire texte brut

 
PROPRIÉTÉS 

Produit : 4D
Thème : Tableaux
Numéro : 1149
Nom intl. : TEXT TO ARRAY

 
HISTORIQUE 

Créé : 4D v13

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)