Thread 2-dimensionales Array mit Spaltenname (4 answers)
Opened by jürgen at 2012-02-08 11:11

Gast jürgen
 2012-02-08 11:11
#155964 #155964
Hallo liebe Community,

ich habe jetzt versucht in Perl objektorieniert zu Programmieren. Alles klappt soweit recht gut. Nur habe ich ein kleines Problemchen, was ich nicht auf die Reihe bekomme:

Bsp.:
Ich habe eine Programm, welches Autos verwaltet, die sich gerade im Parkhaus befinden. (Methode: getAutos() liest alle Autos aus dem Programm und speichert diese in einer .txt mit ";" als Seperator) Die sich daraus ergebende Datei sieht dann beispielsweise so aus:
----------
--- AUTOS.TXT ---
Code: (dl )
1
2
3
4
5
6
Zeile1: BMW;520i;schwarz;2008
Zeile2: BMW;520i;blau;2009
Zeile3: VW;Golf I;lila;1989
Zeile4: VW;Passat;schwarz;2011
Zeile5: Mercedes;S-Klasse;blau;2012
Zeile6: Opel;Safira;schwarz;1999

----------

Nun lese ich aus der .txt die Werte Zeile für Zeile aus und speichere diese in ein 2d-Array (Methode arrayAutos() gibt ein 2d Array zurück)
Jetzt habe ich folgendes Array:
----------
@autos;
Code: (dl )
1
2
3
4
$autos[i][0] --> Hersteller (z.B. BMW)
$autos[i][1] --> Baureihe (z.B. 520i)
$autos[i][2] --> Farbe (z.B. blau)
$autos[i][3] --> Baujahr (z.B. 1999)

-----------

Nun will ich aber in der ersten Methode "getAutos()" Parameter übergeben, welche Felder er aus dem Programm auslesen soll. Dann würde ein Aufruf so aussehen: getAutos(Hersteller,Baujahr,Zustand,Unfälle,usw). Die TXT Datei würde dann ebenfalls so Strukturiert (Hersteller;Baujahr;Zustand;Unfälle;usw)

Soweit habe ich alles schon gemacht. Jetzt ist das Problem, dass ich nicht weiß, in welcher Spalte welche Info steht, weil das dynamisch ist. Ich habe eine weitere Methode, die mir sagen soll, dass wenn das Auto ein Unfall hatte, er dieses in ein seperates Array speichern soll. Ich könnte ja sagen Array[i][3] ist die Spalte für die Unfälle, aber dann müsste der getAutos() Aufruf genau an der vierten Stelle die Unfälle auflisten. Das möchte ich dynamischer gestalten.

Meine Idee war, einen Hash zu benutzen, durch den ich dann der Spalte einen Namen geben kann und im Code einfach sagen kann.
----------
Code: (dl )
1
2
3
if(Array[i]{"Unfälle"} == 1){
Dann mach was;
}else{mach was anderes}

----------

Erstens weiß ich leider nicht ob diese Syntax korrekt ist und zweitens bekomme ich das nicht so richtig hin, dass ein Array durch Spaltennamen aufgerufen werden kann.

Hättet Ihr da eine Idee oder habt Ihr da schon was in der Richtung gemacht?

Beste Grüße
Jürgen

modedit Editiert von pq: code-tags um die daten und code-schnipsel gesetzt, bitte Formatierungshife lesen
Last edited: 2012-02-08 12:02:51 +0100 (CET)

View full thread 2-dimensionales Array mit Spaltenname