Test: Zeilenwahl

Beim Laden von Textdateien im weiteren Sinn, also per [a], [b], [d], [h], [p], [q], [t], @script und @style, kann der Bereich der zu ladenden Zeilen eingeschränkt werden. Das gilt nicht für Heredocs und Daten-URIs – bei diesen Pseudodateien gäbe es auch keinen Grund, überhaupt mehr Zeilen zu schreiben, als ausgegeben werden sollen.

Die Auswahl erfolgt über einen Query-String, in welchem mehrere Zeilennummern oder Bereiche durch Komma getrennt stehen. Ein Bereich besteht aus einer Anfangs- und einer Endzeilennummer, getrennt durch einen Doppelpunkt. Negative Zeilennummern werden vom Dateiende gezählt.

Aneamal-Dateien

Im Ordner zeilen habe ich eine Datei namens monumente.nml mit folgendem Inhalt angelegt:

?. Lüttich-Bastogne-Lüttich
?. Paris–Roubaix
?. Lombardei-Rundfahrt
?. Mailand–Sanremo
?. Flandern-Rundfahrt

So bindet man sie ein; das Ergebnis wird gleich darunter angezeigt:

[a]->zeilen/monumente.nml
  1. Lüttich-Bastogne-Lüttich
  2. Paris–Roubaix
  3. Lombardei-Rundfahrt
  4. Mailand–Sanremo
  5. Flandern-Rundfahrt

Nun werden zunächst nur das französische, dann die belgischen und zu guter Letzt alle nicht belgischen Monumente des Radsports geladen:

[a]->zeilen/monumente.nml?2
  1. Paris–Roubaix
[a]->zeilen/monumente.nml?1,5
  1. Lüttich-Bastogne-Lüttich
  2. Flandern-Rundfahrt
[a]->zeilen/monumente.nml?2:4
  1. Paris–Roubaix
  2. Lombardei-Rundfahrt
  3. Mailand–Sanremo

TSV-Dateien

Zunächst die ganze Datei, dann die erste und letzte Zeile:

[b]->zeilen/tiere.tsv
Name Art
Migo Perlebär
Rudo Blutegel
Lex Zitterspinne
[b]->zeilen/tiere.tsv?1,-1
Name Art
Lex Zitterspinne

Nun wird die erste Zeile sowie ein Bereich, der von der dritten Zeile von unten bis zur dritten Zeile von oben reicht, geladen. Da ich [p] statt [b] verwende, wird die Tabelle zusätzlich transponiert:

[p]->zeilen/tiere.tsv?1,-3:3
Name Migo Rudo
Art Perlebär Blutegel

HTML-Dateien

Zunächst die ganze Datei, dann eine Auswahl, dann die ganze Datei in umgekehrter Reihenfolge mittels eines Bereiches von der letzten zur ersten Zeile:

[h]->zeilen/test.html
erste Zeile zwote Zeile dritte Zeile
[h]->zeilen/test.html?2,1
zwote Zeile erste Zeile
[h]->zeilen/test.html?-1:1
dritte Zeile zwote Zeile erste Zeile

Die 69st-letzte Zeile gibt es genauso wenig wie die 44ste Zeile oder einen Bereich von Zeile 0 zu Zeile 0:

[h]->zeilen/test.html?-69,44,0:0

Text-Dateien

Erst die ganze Datei, dann dieselbe Zeile mehrfach ausgewählt (Achtung, Zungenbrecher):

[t]->zeilen/schanzen.txt
Oberstdorf
Garmisch-Partenkirchen
Innsbruck
Bischofshofen
[t]->zeilen/schanzen.txt?2,2,2:2,-3
Garmisch-Partenkirchen
Garmisch-Partenkirchen
Garmisch-Partenkirchen
Garmisch-Partenkirchen

Nun lade ich ein Skript mit dem Modul t-php. Dieses Modul hebt Bestandteile von PHP-Code unterschiedlich farbig hervor. Erst die ganze Datei, dann nur die erste und letzte Zeile:

[t-php]->zeilen/hallo.php
<?php
header 
('HTTP/1.1 404 Not Found');
print (
'Hallo Welt!');
[t-php]->zeilen/hallo.php?1,-1
<?php
print ('Hallo Welt!');

Meta-Dateien

Im Ordner zeilen habe ich eine CSS-Datei namens farben.css angelegt:

.css-beispiel {color:green}
.css-beispiel {color:red}
.css-beispiel {color:blue}

Ich lade aus der Datei aber nur die zweite Zeile. Folglich wird der Text rot:

[a]
|@ class:   css-beispiel
|@ style: ->zeilen/farben.css?2
|Färbe mich!

Färbe mich!