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

Leonardo Ruoso leonardo.ruoso em gmail.com
Terça Fevereiro 22 09:09:46 PST 2011


Ricardo,

Essa não seria a típica aplicação do perl como shell script?

Não é uma aplicação. Não faria sentido usar OO, SOA ou qualquer outro
paradigma recomendado para o desenvolvimento de aplicações.

Não vejo equivoco nesse tipo de código como resolução para esse tipo de
problema.

Vocês acredita que one line perl deveria ser abolido?

Atenciosamente,

Leonardo Ruoso (CE1921JP)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
leonardo em ruoso.com · (11) 3522-9612 · (85) 8787-0312
http://leonardo.ruoso.com · http://twitter.com/LeonardoRuoso
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
*Leonardo Ruoso *· * *Gerente de Projetos · Analista de Sistemas
Comunicação Social/Jornalismo - UFC/2006 · Telecomunicações - ETFCE/1998
*Internet e inovação tecnológica deste 1996*
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .


2011/2/22 Ricardo Stock <ricardostock em bol.com.br>

>  Fernando parabens pelo código.
>  Perfeito, lindo funcional e inelegivel para meros humanos :-) tipica
> daqueles que falam que o perl é um monte de codigo bizonho.
>
> mas ficou lindo, Parabens.
>
> Esse codigo vai ficar guardado na minha coleção. :-)
>
> Ricardo
>
> ----- Original Message -----
> *From:* Fernando Corrêa de Oliveira <fernandocorrea em gmail.com>
> *To:* Cascavel Perl Mongers <cascavel-pm em pm.org>
> *Sent:* Tuesday, February 22, 2011 11:07 AM
> *Subject:* Re: [Cascavel-pm] Res: Res: Acesso aleatório à arquivos
>
> Não por isso!
>
> perl -F, -nale 'push @{ $pessoa{$F[0]}->{A} }, $F[1]; push @{
> $pessoa{$F[0]}->{B} }, $F[2]; END{print "$_ => ", join(", ", @{
> $pessoa{$_}->{A} }), "$/\t", join(", ", @{ $pessoa{$_}->{B} }), for keys
> %pessoa}' arquivo.txt
>
>
> Em 22/02/2011, às 10:58, Leonardo Gerheim escreveu:
>
>   A resposta do Fernando foi muito d+, Show de bola mesmo.
>
>     Mas devido a forma que chegou o email para vocês, acho que não
> entenderam como deveria ser a disposição das notas na saída, porque dessa
> forma que vocês fizeram eu também fiz, não tão impressionantemente em uma
> linha.
>     A disposição das notas dever ser a nota A (NEGRITO) em cima na nota B
> (NORMAL) assim:
>
> INPUT:
>
> joao,1,1
> joao,2,1
> joao,1,2
> maria,1,1
> maria,2,1
> maria,1,2
>
> OUTPUT:
>
> joao => 1,2,1
>             1,1,2
>
> maria => 1,2,1
>               1,1,2
>
>
>     Entenderam? Por isso perguntei como faria para avançar e recuar uma
> linha.
>     Vlw pela força até agora.
>
>
>  ------------------------------
> *De:* Renato Santos <renato.cron em gmail.com>
> *Para:* Cascavel Perl Mongers <cascavel-pm em pm.org>
> *Enviadas:* Terça-feira, 22 de Fevereiro de 2011 10:40:37
> *Assunto:* Re: [Cascavel-pm] Res: Acesso aleatório à arquivos
>
> 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/
>
>  _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
>
> Just Another Perl Hacker
> Fernando Corrêa de Oliveira
> fernandocorrea em gmail.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
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20110222/57913bc5/attachment-0001.html>


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