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