[Cascavel-pm] Informacoes no arquivo

Patty Silva ptfzs em yahoo.com.br
Quarta Abril 19 05:44:44 PDT 2006


Olá Pessoal.. brigada pela ajuda.. um amigo me sugeriu fazer da seguinte forma:


foreach(@table)

{

   if ($_ =~ /^\s*V/) {

      print "VAR: $var TIPO: $tipo TESTE: $test \n";

   }

}


Agora nao quero pegar a variavel V-TESTE tentei fazer:
if (($_ =~ /^\s*V/) or ($_ !='V-TESTE' ) 

mas nao funciono

:P





"Alceu R. de Freitas Jr." <glasswalk3r em yahoo.com.br> escreveu: Oi Patty,

Comentei seu email abaixo.

--- Patty Silva 
 escreveu:

> Pessoal..
>  o arquivo nao eh por TAB

Então os registros estão separados por espaços, creio
eu? Seria melhor se você nos contasse.
 
>  Eu quero pegar somente as VARIAVEIS que comecem com
> V , no caso
>  V-NOME, V-END.. pq as outras nao possuem valor..var
> TEL , var FAX ...

Existem várias maneiras de resolver isso. Pode ser com
REGEX, mas se você sabe de antemão quais são as
variáveis desejadas, pode ser mais rápido comparar
elas usando o operador "eq" e colocar isso num loop.

>  Como sugerido pelo amigo, fiz:
>  
>  open(FH, '
>  @table = ;

Não faça isso, a menos que tenha certeza que o arquivo
é pequeno e você tenha memória sobrando. Se for esse o
caso, essa é a forma mais rápida.

Do contrário, use

while () {

# faz algum processamento

}

>  shift @table; #descarta primeira linha

Tem uma variável do Perl que possui o número da linha
atual. Alguém saberia dizer qual?

# descarta a primeira linha
next if $numero_linha = 1;

>  foreach(@table)
>  {
>  # Esse UNDEF é pq possui espaco em branco antes da
> variavel..
>  (undef,$var,$tipo,$time,$id,$test) = split /\s+/,
> $_;
>  print "VAR: $var TIPO: $tipo TESTE: $test \n";
>  
>  
>  }
>  
>  So que esta pegando tudo...

Se está pegando tudo, seu separador de campos não está
correto. Verifique se você possui espaços como
separadores.

> oBS: pensei em utilizar uma expressao regulara para
> verificar se a $VAR cmeca por V?? se alguem puder me
> ajudar!!

Pode ser. Mas se você precisa de performance, eu
tentaria incluir os valores exatos das variáveis dos
scripts assim:

if ( ( $_ eq 'VAR1' ) or ( $_ eq 'VAR2' ) ) {

# faz alguma coisa

}

Com regex ficaria algo assim:

if (/^V\w+) {

# faz alguma coisa

}

Para testar a diferença de performance, tente usar o
módulo Benchmark.

[]'s



Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1


  
_______________________________________________________ 
Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz. 
http://br.info.mail.yahoo.com/
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm



		
---------------------------------
 Abra sua conta no Yahoo! Mail - 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz. 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20060419/143843d3/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm