[Cascavel-pm] Come linhas
Brinde Storm -Steven Koch
s.koch em brindestorm.com
Sexta Maio 19 08:42:54 PDT 2006
Ola pessoal,
Tenho este script:
#Inicio-----------------------------------------------
my $arquivo = "" ;
$prefixo = 1;
$referencia1 = param("referencia$prefixo");
$refere1 = $referencia1;
$refere1 =~ s/\..*//;
$area1 = param("area$prefixo");
$categoria1 = param("categoria$prefixo");
$prefixo = 2;
$referencia2 = param("referencia$prefixo");
$refere2 = $referencia2;
$refere2 =~ s/\..*//;
$area2 = param("area$prefixo");
$categoria2 = param("categoria$prefixo");
$prefixo = 3;
$referencia3 = param("referencia$prefixo");
$refere3 = $referencia3;
$refere3 =~ s/\..*//;
$area3 = param("area$prefixo");
$categoria3 = param("categoria$prefixo");
$prefixo = 4;
$referencia4 = param("referencia$prefixo");
$refere4 = $referencia4;
$refere4 =~ s/\..*//;
$area4 = param("area$prefixo");
$categoria4 = param("categoria$prefixo");
$prefixo = 5;
$referencia5 = param("referencia$prefixo");
$refere5 = $referencia5;
$refere5 =~ s/\..*//;
$area5 = param("area$prefixo");
$categoria5 = param("categoria$prefixo");
$preenc = 0;
$total = 0;
open(CSV, "$arquivo_catalogo" );
@arquivo_csv = <CSV>;
close(CSV);
foreach(@arquivo_csv){
@linha = split(";", $_);
my $pesq = $linha[0];
$pesq =~ s/\..*//;
if("$pesq" eq "$refere1" or "$linha[0]" eq "$referencia1" ){
$linha[34] = $area1;
$linha[35] = $categoria1;
}elsif("$pesq" eq "$refere2" or "$linha[0]" eq
"$referencia2" ){
$linha[34] = $area2;
$linha[35] = $categoria2;
}elsif("$pesq" eq "$refere3" or "$linha[0]" eq
"$referencia3" ){
$linha[34] = $area3;
$linha[35] = $categoria3;
}elsif("$pesq" eq "$refere4" or "$linha[0]" eq
"$referencia4" ){
$linha[34] = $area4;
$linha[35] = $categoria4;
}elsif("$pesq" eq "$refere5" or "$linha[0]" eq
"$referencia5" ){
$linha[34] = $area5;
$linha[35] = $categoria5;
}
if(length($linha[0])>0){
$arquivo = $arquivo . join(";", @linha);
}
if((length($linha[34])>0) and (length($linha[35])>0)){
$preenc++;
}
$total++;
}
#}
open(CSV , ">$arquivo_catalogo");
flock(CSV, 2);
print CSV $arquivo or print "Não foi possivel guardar os dados, há
outra pessoa executando este comando: tente novamente";
close(CSV);
#Fim-----------------------------------------------
Em suma o script varre o arquivo CSV e o "IF" verifica se o codigo.cor(a
expressão regular tira a cor para se comparado somente o codigo) é igual ao
codigo passado por parametro e coloca os valores enviados nos elementos 34 e
35.
Depois faz um join e guarda o arquivo.
O problema é que o script come linhas e embaralha o texto. Fiz o if antes de
fazer o join mas esta comendo 1 ou 2 linhas.
Tenho varias pessoas que acedem ao mesmo tempo este script.
O que pode estar acontecendo??????
Mais detalhes sobre a lista de discussão Cascavel-pm