Dokumentation zu: break_string(S)

HR Image


FUNKTION:
        string break_string(string str, int width, mixed indent, int flag)

DEFINIERT IN:
	<defines.h>  // fuer die Flags etc.

ARGUMENTE:
        str    - umzubrechender String
        width  - optional: maximal erlaubte Zeilenlaenge
        indent - optional: vor jede Zeile zu setzender Text bzw
                           Leerzeichenzahl
        flag   - optional: Bearbeitungsoptionen

BESCHREIBUNG:
        In den String str werden so '\n' eingefuegt, dass keine Zeile laenger
        als width ist. Ist width nicht angegeben, so wird als Laenge
        BS_STDLEN genommen.

        Ein mit indent gegebener String wird dabei vor die erste Zeile
        gesetzt, folgende Zeilen werden entsprechend eingerueckt. Wenn
        indent eine Integerzahl ist, wird diese Anzahl von Leerzeichen vor
        jede - ausser der ersten - Zeile gesetzt.

        Der zurueckgegebene String endet immer mit '\n'; es sei denn str ist
        leer, dann wird "" zurueckgeliefert.

        flag kann folgende Werte annehmen:
        BS_ERASE_LFS: Vorhandene Zeilenumbrueche werden zuerst entfernt.
        BS_BLOCK: Der Text wird zu einem Block mit der Breite width geformt.
          Das letzte Zeichen jeder Zeile befindet sich also an Position
          width. Dies wird durch Einfuegen von mehreren Leerzeichen
          erreicht. Ausserdem wird bei jedem Absatzanfang der Text um
          eine Stelle eingerueckt. In str enthaltene und nicht
          entfernte '\n' markieren jeweils den Beginn eines Absatzes.
        BS_NO_PARINDENT: Absaetze werden nicht mehr eingerueckt.
        BS_IND_FIRST: Beim Einruecken um eine Anzahl, wird auch die aller-
          erste Zeile eingerueckt. Dies ist automatisch so, wenn ein
          Einrueckstring angegeben ist, sonst wuerde man ihn ja nicht
          sehen.
        BS_FOR_COMM: Dieses Flag kennzeichnet Umbrueche fuer Kommunikation
          (wird von der Lib benutzt): Die Umbruchbreite wird BS_STDLEN,
          die Einrueckung BS_STDINDLEN. Die erste Zeile wird nicht
          eingerueckt. Andere angegebene Flags oder Werte werden ignoriert.
        BS_CONVERT_COLOR: Mit use_color(L) erzeugte Farben werden beim Um-
          bruch in Ansi-Sequenzen verwandelt.

RÜCKGABEWERT:
        Der umgebrochene Text als string.

BEISPIELE:
        break_string("Dies ist ein sehr langer Text.", 20)
        => Dies ist ein sehr
           langer Text.

        break_string("Mit indent sieht das so aus.", 30, "Kapitel 1: ")
        => Kapitel 1: Mit indent sieht
                      das so aus.

        break_string("Und so mit vielen Leerzeichen.", 20, 5)
        => Und so mit vielen
                Leerzeichen.

        break_string("Hm.\nJetzt will ich das so.", 15, 0, BS_ERASE_LFS
        => Hm. Jetzt will
           ich das so.

        break_string("Jetzt wollen wir mal einen tollen Block setzen.", 17,
          0, BS_BLOCK)
        =>  Jetzt wollen wir
           mal einen  tollen
           Block setzen.

        break_string("Aber jetzt will ich keine Einrueckung mehr!", 19,
          0, BS_BLOCK|BS_NO_PARINDENT)
        => Aber jetzt will ich
           keine   Einrueckung
           mehr!

        break_string("Wargon sagt: So, noch fragen oder wie?", 25, 5,
          BS_IND_FIRST)
        =>      Wargon sagt: So, noch
                fragen, oder wie?
                
        break_string("Mhm, was ist denn das? Es gehoert mir nicht.", BS_STDLEN,
          "Charlie schaut erstaunt und sagt: ", BS_FOR_COMM)
      => Charlie schaut erstaunt und sagt: Mhm, was ist denn das? Es gehoert mir
                nicht.


BEMERKUNGEN:
        Bei uns werden Texte standardmaessig auf BS_STDLEN Zeichen
        umgebrochen. Einrueckungen sind meistens BS_STDINDLEN lang.

        Moechte man Terminal-Steuercodes in den Text einfuegen, zB um ein
        Wort farblich hervorzuheben, so darf dieses ausschliesslich mit
        use_color(L) erzeugt werden. Ansonsten kommt die Einrueckung, da sie
        die Steuerzeichen als normale Buchstaben mitzaehlt, durcheinander.
        Die Ersetzung findet nur bei gesetztem BS_CONVERT_COLOR statt.

SIEHE AUCH:
        countup(S), use_color(L)


Start » Magierhandbuch » Docu » Sfun » Break_string Letzte Generierung: 01.05.2021, 16:59
Valid HTML 4.01!