Ausgabeformat
Möchte man das Ausgabeformat einer Eingabe (im Folgenden die Datei themen.txt) beeinflussen hilft einem format
weiter.
Der Dateiinhalt, der bearbeitet werden soll ist folgender:
Perun : Browser : HTML-CSS : Internet : PHP-JS
Sahanya : BĂĽcher : Filme : Kurioses : PS-Tutorials
Und der Perl-Code zum Einlesen der Datei (themen.txt) und Ausgeben in der neuen Datei (blogthemen.txt) sieht so aus:
#!usr/bin/perl -w
open (BLOGTHEMEN, ">blogthemen.txt") || die "kann Datei nicht anlegen $!";
open (THEMEN, "themen.txt") || die "Datei oeffnen geht nicht $!";
while (<THEMEN>) {
chomp;
($blog, $thema1, $thema2, $thema3, $thema4) = split (/: /);
write (BLOGTHEMEN);
}
(Nachtrag: Hat man in der Quelldatei mehr Daten als man verarbeiten möchte, kann man diese auch selektieren. Zeile 6 sähe dann z. B. so aus:
($blog, $thema1, $thema2, $thema3, $thema4) = (split /:/) [0,1,2,3,5];
Um das Aussehen der Zieldatei zu beeinlussen, defniert man es:
format BLOGTHEMEN =
=============================
@||||||||||||||||||||||||||||
$blog
@<<<<<<<<
$thema1
@>>>>>>>>>>>>
$thema2
@||||||||
$thema3
@<<<<
$thema4
=============================
.
Die Ausgabedatei sieht danach so aus:
Die Einzelnen Strings wurden eingelesen, am Doppelpunkt durch split getrennt und den einzelnen Variablen zugeordnet.
In den Zeilen 1, 7, 8 und 14 sieht man die Gleich-Zeichen (29 Stück), die ich als Abgrenzung gewählt habe.
In den Zeilen 2 und 9 wird der Inhalt zentriert ĂĽber die gesamte Breite von insgesamt 29 Zeichen (28 mal | und 1 mal @) dargestellt.
In den Zeilen 3 und 10 wird der Inhalt linksbĂĽndig dargestellt.
In den Zeilen 4 und 11 wird der Inhalt rechtsbĂĽndig dargestellt, allerdings nur auf eine Breite von insgesamt 9 Zeichen.
In den Zeilen 5 und 12 wird der Inhalt zentriert dargestellt, allerdings nur auf einer Breit von 9 Zeichen, so dass er linksbĂĽndig wirkt.
In den Zeilen 6 und 13 wird der Inhalt linksbĂĽndig dargestellt, allerdings nur 5 Zeichen, er ist also abgeschnitten.
Ă„ndert man das Format @<<<<
fĂĽr die Zeilen 6 bzw. 13 in ^<<<<
, so erhält man als Ausgabe: „PHP-” bzw. „PS-” — es wird also logisch getrennt. Es fehlen allerdings Teile der Variable. FĂĽr eine merhzeilige Darstellung muss der Code also erweitert werden.
^<<<<
$thema4
^<<<<
$thema4
^<<<<
$thema4
Er ergibt eine evtl. nicht gewollte Leerzeile:
Eine Ă„nderung in
~ ^<<<<
$thema4
~ ^<<<<
$thema4
ergibt die folgende zweizeilige Ausgabe (Sie kann um beliebig viele Zeilen erweitert werden):
Der Zeilenumbruch erfolgt in der ersten Zeile logisch, allerdings wird das Wort „Tutorial” noch immer abgeschnitten — das Feld ist einfach zu kurz.
Eine Erweiterung des Codes um noch eine Zeile ~ ^<<<<
mit der Zuordnung der entsprechenden Variablen $thema4
, sähe dann im Ergebnis so aus:
Hier wird die Leerzeile bei Perun unterdrĂĽckt.
Das gleiche Ergebnis bekommt man allerdings auch mit ~~ ^<<<<
. Die Vorteile: weniger Schreibarbeit und wenn man sich unsicher ist, wieviele Zeilen in der Ausgabe benötigt werden, ist man damit immer auf der sicheren Seite — es werden soviele Zeilen wie benötigt generiert.
Keine Kommentare
Noch keine Kommentare
RSS Feed für Kommentare zu diesem Artikel.
Entschuldige, das Kommentarformular ist zurzeit geschlossen.