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