[LUGOS] Obdelovanje dn v perlu-dodatek

matjaz.demsar at lj-mlek.si matjaz.demsar at lj-mlek.si
Thu Jul 6 09:47:17 CEST 2006


matjaz.demsar at lj-mlek.si wrote:
>
> Prehitro sem poslal prejšnje sporočilo, se opravičujem
>
> Tole je skripta:
>
> #!/usr/bin/perl -w
> use DBI;
>
> $dbh = DBI->connect('DBI:mysql:lmprint;host=myhost', 'myuser', 
> 'mypass', { RaiseError =>1 });
>
> open(F1,"/tmp/test.csv");
>        while($line = <F1>) {
>                if ($line =~ /^(\S+)\.\S+\,(\d+)\,(\d+)\,(\d+)\.\d+/) {
>                $insert = "INSERT INTO report_current_month(printer, 
> jobs, pages, cost) VALUES('$1','$2','$3','$4')";
>                $sth = $dbh->prepare($insert);
>                $sth->execute;
>                }
> }
> close(F1);
>
> Težava je v obliki podatkov. Ti so zapisani v obliki
>
> TALLY_T6180_VRS.Skladisca.Logistika.Trzenje.Ljubljana.LM,3,17,126
>
> Za obdelavo potrebujem samo ime tiskalnika, torej TALLY_T6180_VRS, v 
> bazo pa skripta vpiše 
> "TALLY_T6180_VRS.Skladisca.Logistika.Trzenje.Ljubljana". To je 
> logično, ker perl dela v "greedy" načinu in pobere čim več do zadnje 
> pike. Telovadil sem tudi z ? vendar rezultat ni bil v okviru 
> pričakovanega :(
>
> Ima kdo mogoče kakšno idejo, kako bi odrezal string pri prvi piki?
>
> Hvala in lep pozdrav,
>
> Matjaž
> ------------------------------------------------------------------------
>
> _______________________________________________
> lugos-list mailing list
> lugos-list at lugos.si
> http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-list
> 
Moj predlog: prebereš vrstico in jo s split razbiješ glede na separator

while(<>){
($atributA,$atributB,$atributC)=split/\./;
...
}
v tvojem primeru imaš zdaj ime tiskalnika v spremenljivki $atributA

LP, Andrej

_______________________________________________
lugos-list mailing list
lugos-list at lugos.si
http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-list



Deluje, najlepša hvala za pomoč.

#!/usr/bin/perl -w
use DBI;

$dbh = DBI->connect('DBI:mysql:lmprint;host=kikimora.local.lj-mlek.si', 
'lmprint', 'lmprint', { RaiseError =>1 });

open(F1,"/tmp/test.csv");
open(F2,">/root/mojedelo/output");
        while($line = <F1>) {
                if ($line =~ /^(\S+)\.\S+\,(\d+)\,(\d+)\,(\d+)\.\d+/) {
                        @printer = split(/\./, $1);
                $insert = "INSERT INTO report_current_month(printer, jobs, 
pages, cost) VALUES('$printer[0]','$2','$3','$4')";
                $sth = $dbh->prepare($insert);
                $sth->execute;
                }
}
close(F2);
close(F1);

LP
Matjaž
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://liste2.lugos.si/pipermail/lugos-list/attachments/20060706/5b136d3c/attachment.htm


More information about the lugos-list mailing list