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