Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
TEXT TO ARRAY
|
TEXT TO ARRAY ( varText ; arrText ; Breite ; Schriftname ; Schriftgröße {; Schriftstil {; *}} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
varText | Text |
![]() |
Originaltext zum Unterteilen | |||||
arrText | Array Text |
![]() |
Array, das den in Wörter oder Zeilen unterteilten Text enthält | |||||
Breite | Lange Ganzzahl |
![]() |
Maximale Breite des String (in Pixel) | |||||
Schriftname | Text |
![]() |
Name der Schrift | |||||
Schriftgröße | Lange Ganzzahl |
![]() |
Größe der Schrift | |||||
Schriftstil | Lange Ganzzahl |
![]() |
Stil der Schrift | |||||
* | Operator |
![]() |
Mit Stern = interpretiere Text als multistyle | |||||
Der Befehl TEXT TO ARRAY wandelt eine Textvariable in ein Text-Array um. Der Originaltext in varText (formatiert oder nicht) wird unterteilt und jeder Teil wird ein Element des Array arrText, das der Befehl zurückgibt. Dieser Befehl lässt sich z.B. verwenden, um Seiten oder Spalten mit Text in einer vorgegebenen Größe zu füllen.
Der Originaltext wird gemäß einer festgelegten Zeilenbreite in "Wörter" unterteilt, die auch die Stilelemente berücksichtigen.
Im Parameter varText übergeben Sie den Text, der in Array-Elemente unterteilt werden soll. Dieser Text kann multistyle sein oder auch nicht. Bei Multistyle-Text werden einige Parameter ignoriert.
Im Parameter arrText übergeben Sie den Namen des Array, das mit dem unterteilten Text gefüllt werden soll.
Im Parameter Breite übergeben Sie eine Größe in Pixel, welche die maximale Zeilenlänge zum Einteilen des Textes festlegt. Der Befehl bewertet für den gesamten Text die maximale Anzahl Wörter, die in diese Breite passt, und berücksichtigt seine grafischen Attribute (Schriftart, Schriftstil).
Jedes Array Element muss mindestens ein Wort erhalten. Ist die angegebene Breite zu schmal für die strikt einzuhaltende Unterteilungsregel, wird das Array so nah wie möglich an diesem Parameter gefüllt und die Variable OK wird auf 0 gesetzt. Definieren Sie eine Breite von 3 Pixel, sind die meisten Wörter wahrscheinlich länger als dieser Wert. In diesem Fall wird die Variable OK auf 0 gesetzt.
Das bedeutet auch, dass die maximale Größe des zurückgegebenen Array theoretisch gleich der Anzahl Wörter ist, die in varText gefunden werden.
In den Parametern Schriftname und Schriftgröße übergeben Sie Schriftname und -größe, die der Befehl für varText beim Unterteilen einbeziehen muss. Diese Parameter sind bei Rohtext zwingend.
Im Parameter Schriftstil übergeben Sie eine oder mehrere Konstanten unter dem Thema Schriftstile:
Konstante | Typ | Wert |
Bold | Lange Ganzzahl | 1 |
Italic | Lange Ganzzahl | 2 |
Plain | Lange Ganzzahl | 0 |
Underline | Lange Ganzzahl | 4 |
Dieser Parameter ist optional; wird er weggelassen, wird der Stil Normal verwendet.
Ist der optionale Parameter * übergeben, müssen die Parameter Schriftname, Schriftgröße bzw. Schriftstil für Multistyle-Texte berücksichtigt werden, sofern diese Parameter nicht im Originaltext definiert sind. Sind sie dagegen bereits im Originaltext definiert, werden diese Parameter in allen Fällen ignoriert.
Einen Multistyle-Text in Zeilen mit einer maximalen Breite von 200 Pixel unterteilen:
TEXT TO ARRAY(theText;TextArray;200;"Arial";20;Normal;*)
// die Attribute Arial, 20 und Normal werden nur berücksichtigt, wenn sie nicht im Text definiert sind
Wir wollen Rohtext in Zeilen mit einer maximalen Breite von 350 Pixel in der Schrift Bodoni Bold, Größe 14 unterteilen. Da dieser Befehl nicht korrekt arbeitet, wenn die Schrift fehlt, ist es wichtig, das zu prüfen:
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
// andere Schrift verwenden
End if
Multistyle-Text soll ohne Stile in der Schrift Arial Normal, Größe 12 mit einer maximalen Breite von 600 Pixel gedruckt werden:
// Multistyle Text in Rohtext umwandeln
$RawText:=OBJECT Get plain text(vText)
// das Array füllen
TEXT TO ARRAY($RawText;TextArray;600;"Arial";12)
Sie müssen in einem 400-Pixel breiten Bereich einen Text mit maximal 80 Zeilen drucken und dafür die größtmögliche Schrift verwenden (begrenzt auf 24 Punkt). Sie schreiben wie folgt:
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)
Produkt: 4D
Thema: Arrays
Nummer:
1149
Erstellt: 4D v13
4D Programmiersprache ( 4D v20 R7)