Thread .csv Zeilenweise in (Hash?)Array einlesen & auf einzelne Werte zugreifen (7 answers)
Opened by norvel at 2012-07-26 14:26

norvel
 2012-07-26 14:26
#160201 #160201
User since
2012-07-26
20 Artikel
BenutzerIn
[default_avatar]
Hallo allerseits,

ich habe schon im Internet gesucht, allerdings noch keine richtige Lösung für meine Problemstellung finden bzw herleiten können.

File-Aufbau:
Das .csv File hat in der ersten Zeile Überschriften, alle Weiteren Zeilen sind mit Daten Gefüllt (angenommen: 1000 Zeilen, 23Einträge pro Zeile).

Bsp:
CUSTOMER_ID,CUSTOMER_NAME,COUNTRY_NAME,AREA_NAME...COUNT_DATE(YYYYMMDD)
1111, Kunde1, Germany, NRW...20120725
1111, Kunde1, Germany, NRW...20120726
1112, Kunde2, Germany, BW...20120726
...
...

Ziel:
Ich möchte nun ein Array erstellen, in dem jede Zeile und jeder einzelne (durch ein Komma getrennte) Eintrag in der Zeile über einen Index ansprechbar ist.
($input[0][0], $input[0][1], $input[0][1]...
$input[1][0], $input[1][1], $input[1][1]...
usw)

Möglich wäre wahrscheinlich auch ein Hash Array, bei dem die CUSTOMER_ID als Hash für spätere Vergleiche gespeichert wird, wie ich dann die restlichen Werte der Zeile in ein anonymes Array "packen" könnte ist mir jedoch auch nicht klar..

Bisherige Versuche:
Bis jetzt sind Versuche über über einen Split in der While Schleife gescheitert. Hier nur mal der Anfang, da der Rest inzwischen zu Chaotisch ist.

Code: (dl )
1
2
3
4
5
6
7
8
9
$input_file_name = "test_file.csv";
open (FILE,$input_file_name) or die "Can not open file $input_file_name!";

while ($line_query_input=<FILE>)
{
@query_input=split("\,",$line_query_input)) # Splits line into array
# #chomp($line_query_input); # Removes \n at every word
...
}


Nach dem Split wollte ich dann die einzelnen Werte des @query_input Arrays über weitere while-Schleifen einem anderen Array zuweisen, in dem sie dann gespeichert werden.

(Die Entwicklungsumgebung ist Padre (Strawberry Perl))

Vielen Dank im Vorraus für Eure Bemühungen!
Last edited: 2012-07-26 14:28:58 +0200 (CEST)

View full thread .csv Zeilenweise in (Hash?)Array einlesen & auf einzelne Werte zugreifen