Thread Funktion die Werte, welche kommagetrennt in einem String stehen in Array speichert?
(14 answers)
Opened by bandchef at 2014-05-16 13:30
Auch wenn es lehrerhaft klingt, ich empfehle dafür: Text::CSV
Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #!/usr/bin/perl use strict; use warnings; use Text::CSV; use utf8; # wg. Umlauten in __DATA__ my $csv = Text::CSV->new; my $firstline = 1; # Flag ob erste Zeile my @keys; while (my $line = <DATA>) { # eien Datenzeile aus __DATA__ lesen my $status = $csv->parse($line); # CSV-Zeile parsen warn $csv->error_diag() if not $status; # falls etwas schief ging, dann Fehler ausgeben my @columns = $csv->fields(); # geparste Felder if ($firstline) { $firstline = 0; @keys = @columns; # Feldnamen kopieren next; } print # Ausgabe von "$_: ", # Feldname shift(@columns), # Wert des Feldes aus Array lesen "\n" # Return für Ausgabe for @keys; # für alle Feldnamen } __DATA__ ID,Vorname,Name,Buch,Preis,Verlag 1,Josef,Gans,"Das Komma (,)",23.50,"Büchle Verlag, Zürich" 2,Antonia,Zwerg,"Buchstaben, Worte sind Schall",18.20,OX-Verlag 3,Adam,Riese,"Schnee aus Witten, Reihe: Krimi und Leidenschaft",18.00,Oldschool-Verlag ergibt: ID: 1 Vorname: Josef Name: Gans Buch: Das Komma (,) Preis: 23.50 Verlag: Büchle Verlag, Zürich ID: 2 Vorname: Antonia Name: Zwerg Buch: Buchstaben, Worte sind Schall Preis: 18.20 Verlag: OX-Verlag ID: 3 Vorname: Adam Name: Riese Buch: Schnee aus Witten, Reihe: Krimi und Leidenschaft Preis: 18.00 Verlag: Oldschool-Verlag denn split ist nicht so das wahre: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #!/usr/bin/perl use strict; use warnings; use utf8; # wg. Umlauten in __DATA__ my $firstline = 1; # Flag ob erste Zeile my @keys; while (my $line = <DATA>) { # eien Datenzeile aus __DATA__ lesen my @columns = split /,/,$line; if ($firstline) { $firstline = 0; @keys = @columns; # Feldnamen kopieren next; } print # Ausgabe von "$_: ", # Feldname shift(@columns), # Wert des Feldes aus Array lesen "\n" # Return für Ausgabe for @keys; # für alle Feldnamen } __DATA__ ID,Vorname,Name,Buch,Preis,Verlag 1,Josef,Gans,"Das Komma (,)",23.50,"Büchle Verlag, Zürich" 2,Antonia,Zwerg,"Buchstaben, Worte sind Schall",18.20,OX-Verlag 3,Adam,Riese,"Schnee aus Witten, Reihe: Krimi und Leidenschaft",18.00,Oldschool-Verlag denn es ergibt: ID: 1 Vorname: Josef Name: Gans Buch: "Das Komma ( Preis: )" Verlag : 23.50 ID: 2 Vorname: Antonia Name: Zwerg Buch: "Buchstaben Preis: Worte sind Schall" Verlag : 18.20 ID: 3 Vorname: Adam Name: Riese Buch: "Schnee aus Witten Preis: Reihe: Krimi und Leidenschaft" Verlag : 18.00 Last edited: 2014-05-16 14:42:42 +0200 (CEST) |