4D v16.3TEXTE VERS TABLEAU |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
TEXTE VERS TABLEAU
|
TEXTE VERS TABLEAU ( varTexte ; tabTexte ; largeur ; nomPolice ; taillePolice {; stylePolice {; *}} ) | ||||||||
Paramètre | Type | Description | ||||||
varTexte | Texte |
![]() |
Texte original à découper | |||||
tabTexte | Tableau texte |
![]() |
Tableau contenant le texte découpé en mots ou lignes | |||||
largeur | Entier long |
![]() |
Largeur maximale de la chaîne (en pixels) | |||||
nomPolice | Texte |
![]() |
Nom de police | |||||
taillePolice | Entier long |
![]() |
Taille de police | |||||
stylePolice | Entier long |
![]() |
Style de police | |||||
* | Opérateur |
![]() |
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).
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)
Produit : 4D
Thème : Tableaux
Numéro :
1149
Nom intl. : TEXT TO ARRAY
Créé : 4D v13
4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)