[Cascavel-pm] Parseando dados.

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Segunda Setembro 26 06:06:18 PDT 2005


--- Tarik Gregorio <tgregorio7 em gmail.com> escreveu:

> Pessoal tenho essa tabela abaixo dentro de $res 

Sua tabela tem caracteres em posições fixas? Não dá
para verificar isso pelo seu email (em formato HTML). 

> e to
> parseando com 
> @res = split "\n", $res;
> $res = $res[2];
>  $res =~ s/\s+/|/gi;
>  $res[5] =~ s/\s+/|/gi;
> @vars=split(/\|/,$res[5]);

Você está pegando todo o conteúdo e jogando num array
para depois voltar para uma scalar? Parece meio
confuso... tentar resolver o problema todo de uma vez
com um punhado de expressões regulares é tentador mas 
complicado... tente fazer aos poucos e DEPOIS de seu
programa funcionar você pensa em otimizações.

Eu faria assim:

---

use warnings;
use strict;

my $arquivo_fonte = shift;
my @linha;

open(IN, "<$arquivo_fonte") or die "Nao consigo ler
$arquivo_fonte\n";

while ( <IN> ) {

# você não quer essa linha
    next if ( /^=+/ );
# removendo espaços e usando pipe no lugar
    s/\s+/\|/g;
    @linha = split( /\|/, $_ );
    processa_linha( \@linha );

}

close( IN );

sub processa_linha {

# algum código aqui

}

[]'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

__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 


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