Externe Daten
Aufgabe: Ein Array soll mit Werten aus einer Datei gefüllt und dann angezeigt werden.
Aufgabe externe Datei:
Lade die Datei punkte.csv mit einem Texteditor (nicht mit einer Tabellenkalkulation!):
-
Untersuche, wie viele Zeilen und wie viele Spalten sie hat. Ist es eine csv-Datei mit Überschriften? Welches Trennzeichen wurde zwischen den Werten verwendet? Wurden alle Texte in Anführungszeichen eingeschlossen?
Ergänze die Datei um zwei eigene Einträge (so kannst du cheaten... ).
Datentypen
Nachdem man die Struktur der Daten kennt, kann man sich überlegen, welche Datentypen dazu passen:
Art der Daten | Datentyp | Befehl zum Auslesen aus CSV-Datei |
Ganze Zahlen | int | csv.getInt(i,"Punkte"); |
Dezimalzahlen | double oder float | csv.getFloat(i, "Messwert"); |
Texte | String | csv.getString(i, "Name"); |
Punktschreibweise
Verwendet man vorgegebene Bibliotheken, muss man oft zunächst ein sogenanntes "Objekt" einer "Klasse" erschaffen (Befehl new):
z.B. Table csv = new Table(name,"header",',','"');
Hier wird das Objekt csv
vom Typ Table
erschaffen. Dieses Objekt hat dann bestimmte Fähigkeiten. Man kann sie mit objektname.faehigkeit()
(Punktschreibweise) nutzen:
z.B. csv.getInt(i, 2);
Welche Fähigkeiten das Objekt hat, musst du der Dokumentation entnehmen.
Aufgabe Implementation:
Lade die Datei alg12_balkendiagramm_csv:
-
Deklariere ein Array
zahlen
für die Punkte (welcher Typ ist geeignet?). Deklariere ein Arraynamen
für die Spielernamen (welcher Typ ist geeignet?). -
Implementiere die Methode
ladeTabelle(String name)
. Initialisiere dazu dort die Arrays in der richtigen Größe (siehe Arbeitsblatt Zufallszahlen) und fülle sie dann mit den Werten aus der Tabelle (siehe Schritt 3). -
Implementiere die Methode
zeichenBalken()
, so dass das Bild wie oben dargestellt aussieht. Die Namen der Spieler musst du dazu aus dem Arraynamen
herauslesen.
Testen der Implementation:
Da hier Daten aus einer externen Datei kommen, können hier viele Fehler passieren. Zum Beispiel könnte die Datei gar nicht existieren oder keine Überschriften enthalten.
-
Überlege dir noch zwei Fehler, die die Daten haben könnten.
-
Kopiere die Datei punkte.csv, passe das Programm so an, dass deine Kopie geladen wird, und experimentiere, was bei den Fehlern passiert.
-
Lies die Dokumentation zum Befehl, der zum Laden der Datei verwendet wird, und versuche das Programm so anzupassen, dass es mit einer Datei ohne Überschriften zurecht kommt.
-
Versuche möglichst viele Fehler abzufangen (z.B. das Fehlen der Datei).
Expertenaufgabe:
-
Kopiere dein Programm in ein Programm alg12_balkendiagramm_xml. Lass dir die Datei punkte.xml geben. Untersuche die XML-Datei und versuche dein Programm mit Hilfe der Dokumentation der Klasse XML so anzupassen, dass es in der Lage ist, die XML-Datei zu lesen.
Externe Daten: Herunterladen [odt][138 KB]
Externe Daten: Herunterladen [pdf][144 KB]
Hilfekarten: Herunterladen [odt][131 KB]
Hilfekarten: Herunterladen [pdf][121 KB]
Weiter zu Hilfekarten 1