blob: 8e3017d7baea1ac2187ebf454039b73c8ce40ebc [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
Zesstra953f9972017-02-18 15:37:36 +01002break_string()
3**************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 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)
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
18=========
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 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'
MG Mud User88f12472016-06-24 23:31:02 +020026
MG Mud User88f12472016-06-24 23:31:02 +020027
Zesstra953f9972017-02-18 15:37:36 +010028BESCHREIBUNG
29============
MG Mud User88f12472016-06-24 23:31:02 +020030
Zesstra953f9972017-02-18 15:37:36 +010031 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.
MG Mud User88f12472016-06-24 23:31:02 +020035
Zesstra953f9972017-02-18 15:37:36 +010036 Gibt man zusaetzlich noch einen String 'indent' an, so wird dieser vor
37 jede der umgebrochenen Zeilen gesetzt.
MG Mud User88f12472016-06-24 23:31:02 +020038
Zesstra953f9972017-02-18 15:37:36 +010039 Analog wird bei der Angabe der Zahl 'space' ein String mit 'space' Leer-
40 zeichen vor jede umgebrochene Zeile gesetzt.
MG Mud User88f12472016-06-24 23:31:02 +020041
Zesstra953f9972017-02-18 15:37:36 +010042 Zusaetzlich gibt es folgende optionale Flags, die man beliebig kombinieren
43 kann:
MG Mud User88f12472016-06-24 23:31:02 +020044
Zesstra953f9972017-02-18 15:37:36 +010045 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.
MG Mud User88f12472016-06-24 23:31:02 +020061
MG Mud User88f12472016-06-24 23:31:02 +020062
Zesstra953f9972017-02-18 15:37:36 +010063RUECKGABEWERT
64=============
MG Mud User88f12472016-06-24 23:31:02 +020065
Zesstra953f9972017-02-18 15:37:36 +010066 Der umgebrochene Text.
MG Mud User88f12472016-06-24 23:31:02 +020067
Zesstra953f9972017-02-18 15:37:36 +010068 Laufzeit-Fehler, wenn der Indent laenger ist als die vorgegebene Breite.
MG Mud User88f12472016-06-24 23:31:02 +020069
MG Mud User88f12472016-06-24 23:31:02 +020070
Zesstra953f9972017-02-18 15:37:36 +010071BEISPIELE
72=========
MG Mud User88f12472016-06-24 23:31:02 +020073
Zesstra953f9972017-02-18 15:37:36 +010074 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