[Cascavel-pm] Res: Acesso aleatório à arquivos

Renato Santos renato.cron em gmail.com
Terça Fevereiro 22 05:40:37 PST 2011


Fernando, funcionou!

joao => 10, 15, 10, 10, 8, 9
maria => 7, 9, 6, 9, 4, 10



O que o perl (GOLF =P) do Fernando faz é utilizar os argumentos do perl já
dizendo que é para ler um arquivo (-n) separar por virgula (-F,) jogando
cada item da linha para a @F (-a) remove o "enter" em cada linha (usando - l
sem passar nenhum código) e o código em si, -e .

Coragem escrever isso no celular eim! Aja paciencia!


ps: legal o uso do END {}, nunca tinha pensando nisso.

2011/2/22 Fernando Oliveira <fernandocorrea em gmail.com>

> Não é q faltou o for?! Pq ninguem me avisou?!
>
> Em 22/02/2011 10:17, "Fernando Oliveira" <fernandocorrea em gmail.com>
> escreveu:
> >
> perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print "$_ => ",
> join ", ", @{ $pessoa{$_} } for keys %pessoa}' arquivo.txt
>
> >
> > Codigo escrito no cel e não testado!
> > GOLF?!
> >
> > Em 22/02/2011 09:36, "Leonardo Gerheim" <general_andrade em yahoo.com.br>
> escreveu:
> >
> > > Agradeço à todos pelas respostas. Mas realmente não consegui me
> expressar,
> > > como coloquei um exemplo não específico ficou realmente complicado o
> > > entendimento. A minha intenção é a seguinte:
> > > Eu quero poder movimentar dentro do arquivo, ou seja, avançar e recuar
> uma
> > > uma linha do arquivo.
> > >
> > > ex de INPUT:
> > >
> > > joao,10,15
> > > joao,10,10
> > > joao,8,9
> > > maria,7,9
> > > maria,6,9
> > > maria,4,10
> > >
> > > onde temos respectivamente o nome do aluno a nota A e a nota B, mas
> queremos
> > > gerar um OUTPUT:
> > >
> > > joao 10,10,8
> > > 15,10,9
> > > maria 7,6,4
> > > 9,9,10
> > >
> > >
> > > Ou seja, uma nota após a outra.
> > >
> > > Para isso, pensei em ler a primeira linha, imprimir as notas notas uma
> > > embaixo da outra, logoa após isso teria que retornar à primneira linha
> para
> > > imprimir o segundo conjunto de notas, enquanto o nome do aluno for o
> mesmo. O
> > > que não consegui fazer é essa parte de movimentar dentro do arquivo,
> avançando e
> > > recuando em arquivos que tenham registros de tamanho diferente.
> > > Caso existe um algoritmo mais simples por for me ajudem a montá-lo, mas
> de
> > > qualquer forma me expliquei como avançar e recuar linhas.
> > >
> > > Att.
> > >
> > > P.S: A solução do Eden na sua última resposta resolveu a última
> questão, eu que
> > > me expressei totalmente mal.
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > ________________________________
> > > De: Eden Cardim <edencardim em gmail.com>
> > > Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
> > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35
> > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos
> > >
> > >>>>>> "Leonardo" == Leonardo Gerheim <general_andrade em yahoo.com.br>
> writes:
> > >
> > > Leonardo> Olá pessoal, Preciso ler um arquivo e quando em uma
> > > Leonardo> determinada linha contiver um valor, ele pular para a
> > > Leonardo> próxima linha e quando encontrar um segundo valor não
> > > Leonardo> imprimir mais nada, como no exemplo abaixo:
> > >
> > > Não ficou claro o que você quer aqui, mostra um exemplo da entrada e da
> > > saída esperada.
> > >
> > > Leonardo> joao- não imprimir
> > > Leonardo> maria- não imprimir
> > > Leonardo> antonio- não imprimir
> > > Leonardo> a- não imprimir
> > > Leonardo> linguagem- IMPRIMIR
> > > Leonardo> programacao- IMPRIMIR
> > > Leonardo> b- não imprimir
> > > Leonardo> elizabeth- não imprimir
> > > Leonardo> kenia- não imprimir
> > >
> > > Isso é a entrada ou a saída do programa?
> > > grep não resolve?
> > > ,----[ cat test_data ]
> > > | joao
> > > | maria
> > > | antonio
> > > | a
> > > | linguagem
> > > | programacao
> > > | b
> > > | elizabeth
> > > | kenia
> > > `----
> > > ,----[ cat test_data | grep "linguagem\|programacao" ]
> > > | linguagem
> > > | programacao
> > > `----
> > >
> > > Leonardo> Eu consegui fazer um script para isso, entretanto
> > > Leonardo> somente consegui que ele funcione, quando o amanho dos
> > > Leonardo> registros são iguais. Como faço para resolver esse
> > > Leonardo> problema tendo um arquivo com registros de tamnho
> > > Leonardo> diferente?
> > >
> > > Se você mostrar o código, com um exemplo da execução, fica mais fácil
> te
> > > ajudar.
> > >
> > > --
> > > Eden Cardim
> > > Software Engineer
> > > +55 73 9986-3963
> > > edencardim.com
> > > _______________________________________________
> > > Cascavel-pm mailing list
> > > Cascavel-pm em pm.org
> > > http://mail.pm.org/mailman/listinfo/cascavel-pm
> > >
> > >
> > >
> > >
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Renato Santos
http://www.renatocron.com/blog/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20110222/4438361e/attachment.html>


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