Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

[PERL] Falscher Wert wird ausgegeben

CGWS / 4 Antworten / Baumansicht Nickles

Hallo zusammen,
ich versuche gerade eine CSV Datei zu parsen, die aus 29 Spalten besteht. Leider wird immer der Wert der ersten Zeile ausgegeben und nicht der Wert von jeder einzelnen Zeile an der Stelle.

Hier der Code:

#!/usr/bin/perl
use strict;
use warnings;

use Text::CSV;
my $csv = Text::CSV->new({ sep_char => ';' });
my $file = "AB.csv";
my $new_file = "AB.ldif";
my @fields;

open (my $fh, '>:encoding(utf8)', $new_file) or die;

    open(my $data, '<:encoding(utf8)', $file) or die "Could not open '$file' $!\n";
    while (my $line = <$data>) {
        chomp $line;

        if ($csv->parse($line)) {
            #Push elements into array
            push(@fields, $csv->fields());
        } else {
        warn "Line could not be parsed: $line\n";
        }

        my $column0 = $fields[0];
            my $column1 = $fields[1];
            my $column2 = $fields[2];
            my $column3 = $fields[3];
            my $column4 = $fields[4];
            my $column5 = $fields[5];
            my $column6 = $fields[6];
            my $column7 = $fields[7];
            my $column8 = $fields[8];
            my $column9 = $fields[9];
            my $column10 = $fields[10];
            my $column11 = $fields[11];
            my $column12 = $fields[12];
            my $column13 = $fields[13];
            my $column14 = $fields[14];
            my $column15 = $fields[15];
            my $column16 = $fields[16];
            my $column17 = $fields[17];
            my $column18 = $fields[18];
            my $column19 = $fields[19];
            my $column20 = $fields[20];
            my $column21 = $fields[21];
            my $column22 = $fields[22];
            my $column23 = $fields[23];
            my $column24 = $fields[24];
            my $column25 = $fields[25];
            my $column26 = $fields[26];
            my $column27 = $fields[27];
            my $column28 = $fields[28];

            print $column6;
    }

close $fh;

Kann mir jemand helfen? Über eine kurze Rückmeldung wäre ich sehr dankbar.

Gruß
CGWS

bei Antwort benachrichtigen
Acader CGWS „[PERL] Falscher Wert wird ausgegeben“
Optionen
ich versuche gerade eine CSV Datei zu parsen, die aus 29 Spalten besteht.

Unter welcher Distri?

Vielleicht hilft das hier weiter.

MfG Acader

bei Antwort benachrichtigen
CGWS Acader „Unter welcher Distri? Vielleicht hilft das hier weiter. MfG ...“
Optionen

Hallo Acader,

im Moment habe ich das Skript mit StrawberryPerl unter Windows in Verwendung gehabt, weil ich grade keinen anderen Rechner zur Verfügung habe.Hast du denn eine Idee?

Gruß
CGWS

bei Antwort benachrichtigen
Acader CGWS „Hallo Acader, im Moment habe ich das Skript mit ...“
Optionen
Hast du denn eine Idee?

Ehrlich gesagt nicht so richtig.

MfG Acader

bei Antwort benachrichtigen
CGWS Acader „Ehrlich gesagt nicht so richtig. MfG Acader“
Optionen

Hallo Acader,

schade. Ich versuche gerade mit diesem Skript einen Parser zu schreiben, der ein Adressbuch von Windows Live Mail (CSV) in ein CSV kompatibles Format für Thunderbird umwandelt, oder als LDIF ausgibt.

Ich habe bis jetzt noch nicht den Fehler gefunden. Im Kopf ist mir meine Vorgehensweise schon klar, habe nur Probleme sie auf Papier zu bekommen.

Gruß
CGWS

bei Antwort benachrichtigen