Perl parser cvs na sql

Sekcia: Programovanie 27.02.2009 | 18:53
Ivan   Návštevník
Zdavim, neviete mi niekto pomoc surne zhanam nejaky Perl Parser nasiel som iba PHP parser ktory mi je v mojom pripade zbytocny uz som bezradny... Ide hlavne aby dokazal velke cvs-ko vyparsovat do sql-ka co je samozrejme...

priklad subor cvs obsahuje: data.cvs

ID|MENO|VYSKA|VAHA
1;janko;180;75
2;ferko;195;90

a potrebujem to dostat do tvaru

insert into zoznam values('1','janko','180','75' );
insert into zoznam values('2','ferko','195','90' );

Ale CVS-kovy subor ma asi 8MB.

Velmi pekne dakujem.
    • Re: Perl parser cvs na sql 27.02.2009 | 18:56
      Avatar ----   Používateľ
      neni zac
    • Re: Perl parser cvs na sql 27.02.2009 | 20:38
      Avatar borg Arch, Debian jessie  Administrátor
      asi si myslel csv. vsak perl je jeden velky parser (Practical Extraction and Report Language). treba hlat v cpan:
      http://search.cpan.org/search?query=csv&mode=all
      • Re: Perl parser cvs na sql 28.02.2009 | 18:23
        Ivan   Návštevník
        Nasiel som iba toto ale to mi vyparsuje len slova oddelovane ciarkou ja by som potreboval bodokociarku a v perl dobre neovladam nedal by sa ten zdrjak upravit?

        #!/usr/bin/perl

        # PERL MODULE
        use Text::CSV::Simple;

        # script

        my $tplSQL = "INSERT INTO country (short_code, name) VALUES (\"%s\",\"%s\");\n";
        my $csvFile="codes.csv";

        my $parser = Text::CSV::Simple->new();
        my @data = $parser->read_file($csvFile);

        foreach(@data) {
        printf $tplSQL, @$_[1], @$_[2];
        };
        • Re: Perl parser cvs na sql 04.03.2009 | 20:02
          stando   Návštevník
          teraz som nakukol do zdrojakov a ak ma zrak neklame tak Text::CSV::Simple->new() zavola Text::CSV_XS->new(), pricom vsetko co das do new pri Text:CSV::Simple sa da do Text:CSV_XS....blablabla...

          malo by stacit teda zmenit jeden riadok:
          my $parser = Text::CSV::Simple->new();
          zmen na:
          my $parser = Text::CSV::Simple->new( sep_char => ';' );

    • Re: Perl parser cvs na sql 19.04.2009 | 01:47
      fanusik   Návštevník
      #!/usr/bin/env perl
      #
      use strict;
      use warnings;

      my $csv_file="/tmp/csvfile.csv";
      my $separator=";";

      open (CSVFILE, $csv_file);
      my @lines = <CSVFILE>;

      for my $line(@lines)
      {
      $line =~ s/\n//;
      my @splited_line=split($separator,$line);
      print "insert into zoznam values('".$splited_line[0]."','".$splited_line[1]."','".$splited_line[2]."','".$splited_line[3]."');\n";
      }