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

Blabos de Blebe blabos em gmail.com
Terça Fevereiro 22 09:13:21 PST 2011


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

Dos códigos de terceiros que eu tenho que dar manutenção? Imagina...

2011/2/22 Leonardo Ruoso <leonardo.ruoso em gmail.com>:
> 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
>> To: Cascavel Perl Mongers
>> 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
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


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