Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [Perl] datei mit einer bestimmten Formatierung lesen

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.09.2004
    Beiträge
    26

    [Perl] datei mit einer bestimmten Formatierung lesen

    hallo Zusammen,
    ich möchte gern wissen ob es irgendein Modul gibt, das man benutzen kann um Datei mit bestimten formatierungen (z.B. CSV) direkt in ein HASH Laden kann.
    Oder gibt es was ähnliches zum Lesen wie Das format von Perl beim schreiben

    Danke und Gruß

  2. #2
    Registrierter Benutzer
    Registriert seit
    05.02.2006
    Beiträge
    116
    Es kommt immer darauf an, welches Format es ist. Für CSV-Dateien gibt es Text::CSV bzw. Text::xSV. Für XML gibt es XML::Simple, für YAML gibt es YAML::Tiny.

    Mit etwas konkreterer Fragestellung kann auch konkreter geholfen werden.

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    CSV-Dateien kennen doch normalerweise keine Feldnamen - es sei denn, sie haben eine Headerzeile. Im ersten Fall bringt ein Hash nix, im 2. kann man das auch (unter bestimmten Voraussetzungen, z. B. keine Trennzeichen innerhalb der Felder) schnell von Hand erledigen (ungetestetes Fragment):
    Code:
    my @hdr = undef;
    foreach (<INPUT>) {
      chomp;
      unless (@hdr) { @hdr = split /;/; next; }
      my @f = split /;/;
      my %fields = ();
      for (my $n = 0; $n <= $#f; ++$n) { $fields{$hdr[$n]} = $f[$n]; }
    }
    Jan

  4. #4
    Registrierter Benutzer
    Registriert seit
    05.02.2006
    Beiträge
    116
    @jan61: Was machst Du, wenn ein ; in den Daten vorkommt? Folgendes ist valides CSV:

    1;"Dies ist ein Test; aber hallo";3;54

    Deswegen einen richtigen Parser verwenden, der solche Fälle kennt...

  5. #5
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    Zitat Zitat von reneeb Beitrag anzeigen
    @jan61: Was machst Du, wenn ein ; in den Daten vorkommt?
    Deshalb meine Einschränkung "unter bestimmten Voraussetzungen, z. B. keine Trennzeichen innerhalb der Felder". Ich wollte nur zeigen, dass man (eben in bestimmten Situationen) durchaus auch mit einer kleinen selbstgestrickten Lösung ans Ziel kommt. Das ist nach meiner Erfahrung oft deutlich performanter als der Einsatz von Standard-Modulen, weil der Overhead geringer ist. Gerade bei der Verarbeitung großer Datenmengen kann das viel Zeit sparen.

    Jan

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •