4D v16.3

TEXT TO ARRAY

Home

 
4D v16.3
TEXT TO ARRAY

TEXT TO ARRAY 


 

TEXT TO ARRAY ( varText ; arrText ; Breite ; Schriftname ; Schriftgröße {; Schriftstil {; *}} ) 
Parameter Typ   Beschreibung
varText  Text in Originaltext zum Unterteilen
arrText  Array Text in Array, das den in Wörter oder Zeilen unterteilten Text enthält
Breite  Lange Ganzzahl in Maximale Breite des String (in Pixel)
Schriftname  Text in Name der Schrift
Schriftgröße  Lange Ganzzahl in Größe der Schrift
Schriftstil  Lange Ganzzahl in Stil der Schrift
Operator in 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).

  • Bei Multistyle-Text werden die Stile des Originaltextes berücksichtigt und die nachfolgenden Parameter ignoriert - sofern sie übergeben wurden. In diesem Fall behalten die Textzeilen im resultierenden Array ihre Originalstile bei. Sie lassen sich z.B. durch eine Variable vom Typ Text oder String der Reihe nach drucken.
  • Bei Rohtext (ohne Stile) müssen Sie alle Parameter übergeben, damit der Befehl die Länge der Zeilen berechnen kann.

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)



Siehe auch 

ST Get plain text
ST Get text

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays
Nummer: 1149

 
GESCHICHTE 

Erstellt: 4D v13

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)