blob: b1a92bb5ad56cafafebc250ba41de38e6c0ae173 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001break_string()
2==============
3
4FUNKTION
5--------
6::
7
8 string break_string(string str)
9 string break_string(string str, int width)
10 string break_string(string str, int width, string indent)
11 string break_string(string str, int width, int space)
12 string break_string(string str, int width, string indent, int flags)
13 string break_string(string str, int width, int space, int flags)
14
15ARGUMENTE
16---------
17::
18
19 str - umzubrechender String
20 width - optional: maximale Zeilenlaenge (default 78)
21 indent - optional: String, der vor jeder umgebrochenen Zeile erscheint
22 space - optional: Anzahl der Leerzeichen vor jeder umgebrochenen Zeile
23 flags - optional: hiermit laesst sich das Verhalten von break_string()
24 aendern; moegliche Flags siehe Punkt 'Beschreibung'
25
26BESCHREIBUNG
27------------
28::
29
30 In der ersten Form wird der String 'str' durch Einfuegen von "\n" so um-
31 gebrochen, dass bei einer anschliessenden Ausgabe keine Zeile laenger
32 als 'width' Zeichen ist. Eventuell schon in 'str' vorhandene "\n" werden
33 dabei vorher entfernt.
34
35 Gibt man zusaetzlich noch einen String 'indent' an, so wird dieser vor
36 jede der umgebrochenen Zeilen gesetzt.
37
38 Analog wird bei der Angabe der Zahl 'space' ein String mit 'space' Leer-
39 zeichen vor jede umgebrochene Zeile gesetzt.
40
41 Zusaetzlich gibt es folgende optionale Flags, die man beliebig kombinieren
42 kann:
43
44 BS_LEAVE_MY_LFS - schon im Text vorhandene "\n" werden beibehalten
45 BS_SINGLE_SPACE - doppelte Leerzeichen sowie Leerzeichen nach Zeilen-
46 umbruechen werden entfernt
47 BS_BLOCK - der Text wird im Blocksatz formatiert
48 BS_NO_PARINDENT - bei Blocksatz mit vorgegebenen Zeilenumbruechen
49 (BS_BLOCK|BS_LEAVE_MY_LFS) werden Zeilen nach "\n"
50 normalerweise mit einem Leerzeichen begonnen.
51 Um das Einfuegen des fuehrenden Leerzeichens zu
52 unterdruecken, muss BS_NO_PARINDENT angegeben werden
53 BS_INDENT_ONCE - die erste Zeile des Textes wird mit vorangestelltem
54 'indent' ausgegeben; alle folgenden Zeilen bekommen
55 einen Leerstring vorangestellt
56 BS_PREPEND_INDENT - der Ident wird dem Text vorangestellt sofern der
57 Indent + Text laenger als eine Zeile ist. Der Text
58 wird um ein Leerzeichen eingerueckt, was mittels
59 BS_NO_PARINDENT verhindert werden kann.
60
61RUECKGABEWERT
62-------------
63::
64
65 Der umgebrochene Text.
66
67 Laufzeit-Fehler, wenn der Indent laenger ist als die vorgegebene Breite.
68
69BEISPIELE
70---------
71::
72
73 write(break_string("Dies ist ein laengerer Text. Nur so als Beispiel.",27));
74
75 => Dies ist ein laengerer
76 Text. Nur so als Beispiel.
77
78 write(break_string("Mit indent sieht das so aus", 30, "Wargon sagt: "));
79
80 => Wargon sagt: Mit indent sieht
81 Wargon sagt: das so aus
82
83 write(break_string("Mit indent sieht das so aus", 30, "Wargon sagt: ",
84 BS_INDENT_ONCE));
85
86 => Wargon sagt: Mit indent sieht
87 das so aus
88
89 write(break_string("Mit Leerzeichen sieht das so aus", 30, 2));
90
91 => Mit Leerzeichen sieht das so
92 aus...
93
94 write(break_string("Ich will es\naber vorformatiert!",60,
95 "Wargon sagt: ", BS_LEAVE_MY_LFS));
96
97 => Wargon sagt: Ich will es
98 Wargon sagt: aber vorformatiert!
99
100 write(break_string("Ich will es\naber vorformatiert!",30,
101 "Wargon sagt: ", BS_PREPEND_INDENT));
102
103 => Wargon sagt:
104 Ich will es aber
105 vorformatiert!
106
107SIEHE AUCH
108----------
109::
110
111 senderwiederholung
112