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:
|