[Rio-pm] Pegar apenas alguns dados de um arquivo

Marco A P D'Andrade mdacwb em gmail.com
Quarta Fevereiro 20 16:05:27 PST 2008


Ih, Fernando...

não entendi esta... ;)


Gabriel,

O array em Perl não requer que vc indique o numero, basta acrescentar,
que ele se encarrega, eis o "push" que o Fernando utilizou.

Para retirar apenas o numero, vc deve utilizar uma expressão regular básica:

  ( $num ) = $linha =~ /^(\d+)/;

( $num ) -> indica que esta variavel deve receber o primeiro valor de um array

$linha=~ /^(\d+)/; -> procurar no inicio da linha ( ^ ) por numeros ( \d+ )

  push(@array_emp, $num);

Ou, pra ser fazer mais com menos linhas:

   push(@array_emp, $linha =~ /^(\d+)/ );

Claro que existem milhares de outras formações, mas espero que esta
tenha sido didatica, em 2 minutos ;)


Sds,
Marco Antonio



> >        $i = 1;
> >        $array_emp[$i] = $linha;
> >        $i++;





    while($linha = <EMP_LISTA>){
       $i = 1;
       $array_emp[$i] = $linha;
       $i++;
    }

Em 20/02/08, Fernando Oliveira<fernandocorrea em gmail.com> escreveu:
> q tal algo assim?
> <code>
> perl -nae 'push em array,$F[0];END{print "@array"}' arq.txt
> </code>
>
> Em 20/02/08, gabriel lima <gabriellima333 em hotmail.com> escreveu:
> >
> >
> > Pessoal, estou com um problema que pode ser fácil de resolver para vocês.
> > Mas eu estou tendo um pouco de dificuldade para resolver o mesmo. Se
> alguem
> > me ajudar eu ficarei grato!
> >
> > Veja, tenho um arquivo .txt com o seguinte formato
> >
> > 63528   Gabriel Lima
> > 537728  Outro Nome
> > 645374  Fulano De Tal
> > 637485  Beltrano Alvarenga
> >
> > Eu gostaria de ler este arquivo e armazenar, apenas os número, em um
> $array[$i].
> > Observe que o primeiro número tem um digito a menos que os demais. Este
> número
> > tem que ser armazena sem nenhuma espaço em branco, aliás, nenhum pode.
> >
> > Para isso eu já tentei de tudo, expressões regulares, usar um while e
> ficar
> > dando chop até chegar nos números, mas nenhuma das minhas tentavivas deu
> certo.
> > Aliás, minhas tacadas de Golf! (como dizem algumas pessoas aqui da lista)
> passaram
> > bem longe do "buraco".
> >
> > #!/usr/bin/perl
> >
> > use strict;
> >
> > my ($i, @array_emp, $linha);
> >
> >   # Abrindo arquivo para leitura
> > open(EMP_LISTA, "< teste.txt") or die "Erro ao abrir arquivo: $!";
> >
> >     while($linha <EMP_LISTA>){
> >        $i = 1;
> >        $array_emp[$i] = $linha;
> >        $i++;
> >     }
> >        for($i = 0; $i < 4; $i++){
> >           print "$array_emp[$i]\n";
> >        }
> >   # Fechando arquivo
> > close(EMP_LISTA);
> >
> >
> > Era mais ou menos algo como isso que eu estava tentando, mas
> > nem me lembro, escrevi rapido para vocês verem o caminho que
> > eu estava tomando. Acho que está errado.
> >
> > Até mais =/
> >
> >
> >
> >
> >
> >
> >
> > ________________________________
> Conheça já o Windows Live Spaces, o site de relacionamentos do Messenger!
> Crie já o seu!
> > _______________________________________________
> > Rio-pm mailing list
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> >
>
>
>
> --
>  []'s Fernando
> _______________________________________________
>  Rio-pm mailing list
>  Rio-pm em pm.org
>  http://mail.pm.org/mailman/listinfo/rio-pm
>


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