Agility Kata “CSV-Viewer I”
Schreiben Sie eine Anwendung, um CSV-Dateien auf der Konsole anzuzeigen. [1] Es soll ein sehr einfaches Programm sein: Rufen Sie es einfach so über die Befehlszeile auf:
C:\>csvviewer.exe persons.csv
…und der Inhalt der Datei wird nun wie folgt angezeigt: [2]
Name |Age|City | -----+---+--------+ Peter|42 |New York| Paul |57 |London | Mary |35 |Munich | F)irst page, P)revious page, N)ext page, L)ast page, E)xit
Seiten mit Datensätzen werden als Tabelle mit einer Kopfzeile und Zellenrändern wie abgebildet angezeigt. Die entsprechende Datei sieht wie folgt aus; bei einer Seitenlänge von 3 Datensätzen würden diese als drei Seiten dargestellt:
Name;Age;City Peter;42;New York Paul;57;London Mary;35;Munich Jaques;66;Paris Yuri;23;Moscow Stephanie;47;Stockholm Nadia;29;Madrid
Jede Zeile enthält einen Datensatz; die erste Zeile enthält die Spaltennamen; Spalten werden durch “;” getrennt. Der Inhalt der Datensatzfelder ist einfach: keine Zeilenumbrüche, keine Feldtrenner, keine Verarbeitung von Werten in “”. Die Codierung der CSV-Textdateien ist UTF-8.
Die Seitenlänge sollte einen angemessenen Standard für die Konsolenfenster Ihrer Plattform haben, kann aber auch wie folgt an die Anwendung übergeben werden:
C:\>csvviewer.exe persons.csv 40
Die Seitentabelle sollte Spalten mit fester Breite haben, die dem längsten Wert für jede Spalte innerhalb einer Seite entsprechen.
[1] Für diese Übung wird ein Konsolen-Frontend verwendet, da dies der kleinste gemeinsame Nenner in Bezug auf das Frontend für alle Plattformen ist. Egal, ob Sie Ruby oder C# oder Java verwenden, Sie sollten in der Lage sein, ein Konsolen-Frontend über jede Geschäftslogik zu legen. Sicher wäre eine GUI stylischer, aber sie würde auch von den Hauptherausforderungen der Übung ablenken.
[2] Gehen Sie davon aus, dass alle CSV-Dateien nur Zeilen enthalten mit einer Länge, die einer Anzeigezeile entspricht. Es ist daher kein horizontales Scrollen erforderlich. Sehr wahrscheinlich sind jedoch alle Zeilen unterschiedlich lang.