Dokumentation zu: listf(S)

HR Image


FUNKTION:
	string listf(string* liste, int rowlen, int collen)   -  auto
	string listf(string* liste, 0, int cols)              -  manuell

ARGUMENTE:
	liste   -  die auszugebende Liste aus Strings
        rowlen  -  Anzahl der Zeichen insgesammt pro Zeile
	collen  -  Anzahl der Zeichen pro Spalte (optional)
        cols    -  Anzahl der Spalten pro Zeile

BESCHREIBUNG:
	Gibt eine Liste vertikal orientiert aus. Also statt wie ueblich
	Elemente zeilenorientiert anzuordnen:

                        1 2 3                      1 4 7
	    zeilen-     4 5 6         vertikel-    2 5 8
	    orientiert  7 8           orientiert   3 6

	Dies ist oftmals einfacher lesbar, da die Anordnung eher eines
	Textes in mehreren Spalten in einer Zeitung zum Beispiel entspricht.
	Die Funktion kann in einem automatischen und einem manuellen Modus
	benutzt werden.

	Automatischer Modus:
	Man uebergibt die Liste sowie die gewuenschte Gesammtbreite (welche
	zB BS_STDLEN sein kann). Die Funktion bestimmt anhand der Laengen
	der Einzelstrings, wie gross die (gleichgrossen) Spalten sein
	muessen, damit der laengste String noch passt und gibt dann die
	Liste aus. Alternativ kann man auch eine Spaltengroesse vorgeben,
	zu lange Strings werden dann einfach abgeschnitten.

	Manueller Modus:
	Es muss die Liste, als zweites Argument Null und als drittes die
	Anzahl der Spalten uebergeben werden. Die Elemente der Liste
	muessen alle schon die korrekte Laenge besitzen, also genau so
	lang sein, wie eine Spalte. Dies hat den Vorteil dass auch Strings
	mit Farbinformationen ausgegeben werden koennen, wo die ausgegebene
	Laenge von der Stringlaenge differiert.
	Dieser Modus wird von der Lib zB fuer die farbige Anzeige von
	Verzeichnisinhalten verwendet.
	
RÜCKGABEWERT:
	Der formatierte Text

BEISPIELE:
	write(listf(arr, BS_STDLEN));
	-> Gibt die Liste mit automatischen Spaltenbreiten aus.

	write(listf(arr, BS_STDLEN, 15);
	-> Gibt die Liste mit einer festen Spaltenbreite von 15 aus.
           Laengere Elemente werden auf 15 Zeichen gekuerzt. Zwischen
	   den Spalten wird automatisch immer ein Leerzeichen eingefuegt.

	write(listf(arr, 0, 5);
	-> Gibt die Liste aus ohne die Elemente zu veraendern (vor allem
	   werden die Spalten nicht aufgefuellt, die Elemente muessen jeweils
	   die Spalten schon ausfuellen und ggf mit Leerzeichen enden).
	   Es werden dabei 5 Spalten pro Zeile verwendet. Welche Laenge das
	   ergibt haengt von der Breite der beteiligten Elemente ab.

SIEHE AUCH:


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