blob: 8b2d32189dea66a9755231c68ecab52142d1554e [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001break_string()
2**************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 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)
MG Mud User88f12472016-06-24 23:31:02 +020014
MG Mud User88f12472016-06-24 23:31:02 +020015
Zesstra953f9972017-02-18 15:37:36 +010016ARGUMENTE
17=========
MG Mud User88f12472016-06-24 23:31:02 +020018
Zesstra953f9972017-02-18 15:37:36 +010019 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'
MG Mud User88f12472016-06-24 23:31:02 +020025
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027BESCHREIBUNG
28============
MG Mud User88f12472016-06-24 23:31:02 +020029
Zesstra953f9972017-02-18 15:37:36 +010030 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.
MG Mud User88f12472016-06-24 23:31:02 +020034
Zesstra953f9972017-02-18 15:37:36 +010035 Gibt man zusaetzlich noch einen String 'indent' an, so wird dieser vor
36 jede der umgebrochenen Zeilen gesetzt.
MG Mud User88f12472016-06-24 23:31:02 +020037
Zesstra953f9972017-02-18 15:37:36 +010038 Analog wird bei der Angabe der Zahl 'space' ein String mit 'space' Leer-
39 zeichen vor jede umgebrochene Zeile gesetzt.
MG Mud User88f12472016-06-24 23:31:02 +020040
Zesstra953f9972017-02-18 15:37:36 +010041 Zusaetzlich gibt es folgende optionale Flags, die man beliebig kombinieren
42 kann:
MG Mud User88f12472016-06-24 23:31:02 +020043
Zesstra953f9972017-02-18 15:37:36 +010044 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.
MG Mud User88f12472016-06-24 23:31:02 +020060
MG Mud User88f12472016-06-24 23:31:02 +020061
Zesstra953f9972017-02-18 15:37:36 +010062RUECKGABEWERT
63=============
MG Mud User88f12472016-06-24 23:31:02 +020064
Zesstra953f9972017-02-18 15:37:36 +010065 Der umgebrochene Text.
MG Mud User88f12472016-06-24 23:31:02 +020066
Zesstra953f9972017-02-18 15:37:36 +010067 Laufzeit-Fehler, wenn der Indent laenger ist als die vorgegebene Breite.
MG Mud User88f12472016-06-24 23:31:02 +020068
MG Mud User88f12472016-06-24 23:31:02 +020069
Zesstra953f9972017-02-18 15:37:36 +010070BEISPIELE
71=========
MG Mud User88f12472016-06-24 23:31:02 +020072
Zesstra953f9972017-02-18 15:37:36 +010073 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
107
108SIEHE AUCH
109==========
110
111 senderwiederholung