[LUGOS] Obdelovanje dn v perlu-dodatek
Andrej Kastrin
andrej.kastrin at siol.net
Thu Jul 6 09:31:16 CEST 2006
matjaz.demsar na 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 na 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
More information about the lugos-list
mailing list