From jc em joaocoutinho.com.br Mon Feb 14 04:12:54 2011 From: jc em joaocoutinho.com.br (=?ISO-8859-1?Q?Jo=E3o_C=2E_Coutinho?=) Date: Mon, 14 Feb 2011 10:12:54 -0200 Subject: [Cascavel-pm] Hackn' Rio - Chamada de Trabalhos Message-ID: Perlsoal, está aberto o call for papers do Hackn' Rio ( http://hacknrio.org/chamada-de-trabalhos ). As propostas de palestras, mini-cursos e hackfests podem ser enviadas até o dia 6 de março. Observem que não vai mais ser na UFRJ. Vai ser no Centro de Convenções da Bolsa de Valores do Rio de Janeiro, nos dias 8 e 9 de abril. O evento está tendo ótima visibilidade e é uma grande oportunidades para os Perl Mongers de todo o país apresentarem seus projetos/etc. Participem! [ ]'s, João -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From general_andrade em yahoo.com.br Mon Feb 21 12:28:32 2011 From: general_andrade em yahoo.com.br (Leonardo Gerheim) Date: Mon, 21 Feb 2011 12:28:32 -0800 (PST) Subject: [Cascavel-pm] =?iso-8859-1?q?Acesso_aleat=F3rio_=E0_arquivos?= Message-ID: <716106.97580.qm@web30107.mail.mud.yahoo.com> Olá pessoal, Preciso ler um arquivo e quando em uma determinada linha contiver um valor, ele pular para a próxima linha e quando encontrar um segundo valor não imprimir mais nada, como no exemplo abaixo: joao- não imprimir maria- não imprimir antonio- não imprimir a- não imprimir linguagem- IMPRIMIR programacao- IMPRIMIR b- não imprimir elizabeth- não imprimir kenia- não imprimir Eu consegui fazer um script para isso, entretanto somente consegui que ele funcione, quando o amanho dos registros são iguais. Como faço para resolver esse problema tendo um arquivo com registros de tamnho diferente? Abraço. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From jasimioni em gmail.com Mon Feb 21 13:47:26 2011 From: jasimioni em gmail.com (=?ISO-8859-1?Q?Jo=E3o_Andr=E9_Simioni?=) Date: Mon, 21 Feb 2011 18:47:26 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Acesso_aleat=F3rio_=E0_arquivos?= In-Reply-To: <716106.97580.qm@web30107.mail.mud.yahoo.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> Message-ID: while (<>) { last if ($print && /valor2/); print if ($print); $print = 1 if (/valor1/); } 2011/2/21 Leonardo Gerheim : > Olá pessoal, > >     Preciso ler um arquivo e quando em uma determinada linha contiver um > valor, ele pular para a próxima linha e quando encontrar um segundo valor > não imprimir mais nada, como no exemplo abaixo: > > joao- não imprimir > maria- não imprimir > antonio- não imprimir > a- não imprimir > linguagem- IMPRIMIR > programacao- IMPRIMIR > b- não imprimir > elizabeth- não imprimir > kenia- não imprimir > >     Eu consegui fazer um script para isso, entretanto somente consegui que > ele funcione, quando o amanho dos registros são iguais. Como faço para > resolver esse problema tendo um arquivo com registros de tamnho diferente? > > Abraço. > > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > From edencardim em gmail.com Tue Feb 22 04:04:35 2011 From: edencardim em gmail.com (Eden Cardim) Date: Tue, 22 Feb 2011 09:04:35 -0300 Subject: [Cascavel-pm] =?utf-8?q?Acesso_aleat=C3=B3rio_=C3=A0_arquivos?= In-Reply-To: <716106.97580.qm@web30107.mail.mud.yahoo.com> (Leonardo Gerheim's message of "Mon, 21 Feb 2011 12:28:32 -0800 (PST)") References: <716106.97580.qm@web30107.mail.mud.yahoo.com> Message-ID: >>>>> "Leonardo" == Leonardo Gerheim 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 From general_andrade em yahoo.com.br Tue Feb 22 04:36:38 2011 From: general_andrade em yahoo.com.br (Leonardo Gerheim) Date: Tue, 22 Feb 2011 04:36:38 -0800 (PST) Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A__Acesso_aleat=F3rio_=E0_arqui?= =?iso-8859-1?q?vos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> Message-ID: <485066.23109.qm@web30103.mail.mud.yahoo.com> 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 Para: Cascavel Perl Mongers Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >>>>> "Leonardo" == Leonardo Gerheim 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 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Tue Feb 22 05:14:27 2011 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 22 Feb 2011 10:14:27 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Acesso_aleat=F3rio_=E0_arquiv?= =?iso-8859-1?q?os?= In-Reply-To: <485066.23109.qm@web30103.mail.mud.yahoo.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> Message-ID: Olá, Veja se o exemplo lhe serve: use strict; use warnings; my $nomes = {}; open(my $fh, '<', $ARGV[0]); while (my $linha = <$fh>){ # pega letra seguida de qualquer coisa, até o final. Note que se sempre for separado por virgula, vc pode dar split my ($nome, $notas) = $linha =~ /(\w[^,]*)\,(.+)/; # note que talvez seja necessario tratamentos no nome, como UpperCase, trim, acentos, etc.. $nome = uc $nome; $nomes->{$nome} = $nomes->{$nome} ? "$nomes->{$nome},$notas" : $notas; # vc tambem poderia usar um push, e antes separar o valor de "notas" por virgula tambem } print $_ . ' => ' . $nomes->{$_} . "\n" foreach (sort keys %$nomes); Dentro do código, dou sugestões, como por exemplo, usar uma array ou um split. Mas ai fica a sua escolha. Veja o resultado deste perl com a entrada que você mandou: JOAO => 10,15,10,10,8,9 MARIA => 7,9,6,9,4,10 2011/2/22 Leonardo Gerheim > 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 > *Para:* Cascavel Perl Mongers > *Enviadas:* Terça-feira, 22 de Fevereiro de 2011 9:04:35 > *Assunto:* Re: [Cascavel-pm] Acesso aleatório à arquivos > > >>>>> "Leonardo" == Leonardo Gerheim > 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: From fernandocorrea em gmail.com Tue Feb 22 05:17:23 2011 From: fernandocorrea em gmail.com (Fernando Oliveira) Date: Tue, 22 Feb 2011 10:17:23 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Acesso_aleat=F3rio_=E0_arquiv?= =?iso-8859-1?q?os?= In-Reply-To: <485066.23109.qm@web30103.mail.mud.yahoo.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> Message-ID: perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print "$_ => ", join ", ", @{ $pessoa{$_} } }' Codigo escrito no cel e não testado! GOLF?! Em 22/02/2011 09:36, "Leonardo Gerheim" 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 > Para: Cascavel Perl Mongers > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos > >>>>>> "Leonardo" == Leonardo Gerheim 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 > > > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From fernandocorrea em gmail.com Tue Feb 22 05:23:48 2011 From: fernandocorrea em gmail.com (Fernando Oliveira) Date: Tue, 22 Feb 2011 10:23:48 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Acesso_aleat=F3rio_=E0_arquiv?= =?iso-8859-1?q?os?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> Message-ID: Esqueci de dizer q tem q passar o nome do arquivo! Tipo: perl -F, -nale '...' arquivo.txt Em 22/02/2011 10:17, "Fernando Oliveira" escreveu: > perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print "$_ => ", > join ", ", @{ $pessoa{$_} } }' > > Codigo escrito no cel e não testado! > GOLF?! > Em 22/02/2011 09:36, "Leonardo Gerheim" > 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 >> Para: Cascavel Perl Mongers >> Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >> Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >> >>>>>>> "Leonardo" == Leonardo Gerheim 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 >> >> >> >> -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From fernandocorrea em gmail.com Tue Feb 22 05:27:44 2011 From: fernandocorrea em gmail.com (Fernando Oliveira) Date: Tue, 22 Feb 2011 10:27:44 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Acesso_aleat=F3rio_=E0_arquiv?= =?iso-8859-1?q?os?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> Message-ID: Não é q faltou o for?! Pq ninguem me avisou?! Em 22/02/2011 10:17, "Fernando Oliveira" 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" 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 > > Para: Cascavel Perl Mongers > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos > > > >>>>>> "Leonardo" == Leonardo Gerheim 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 > > > > > > > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Tue Feb 22 05:40:37 2011 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 22 Feb 2011 10:40:37 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Acesso_aleat=F3rio_=E0_arquiv?= =?iso-8859-1?q?os?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> Message-ID: 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 > Não é q faltou o for?! Pq ninguem me avisou?! > > Em 22/02/2011 10:17, "Fernando Oliveira" > 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" > 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 > > > Para: Cascavel Perl Mongers > > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 > > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos > > > > > >>>>>> "Leonardo" == Leonardo Gerheim > 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: From general_andrade em yahoo.com.br Tue Feb 22 05:58:27 2011 From: general_andrade em yahoo.com.br (Leonardo Gerheim) Date: Tue, 22 Feb 2011 05:58:27 -0800 (PST) Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A__Res=3A_Acesso_aleat=F3rio_?= =?iso-8859-1?q?=E0_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> Message-ID: <81790.70879.qm@web30103.mail.mud.yahoo.com> 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 Para: Cascavel Perl Mongers 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 Não é q faltou o for?! Pq ninguem me avisou?! >Em 22/02/2011 10:17, "Fernando Oliveira" 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" >>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 >> > Para: Cascavel Perl Mongers >> > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >> > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >> > >> >>>>>> "Leonardo" == Leonardo Gerheim 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: From fernandocorrea em gmail.com Tue Feb 22 06:07:37 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 11:07:37 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A__Res=3A_Acesso_aleat=F3rio_?= =?iso-8859-1?q?=E0_arquivos?= In-Reply-To: <81790.70879.qm@web30103.mail.mud.yahoo.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: 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 > Para: Cascavel Perl Mongers > 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 > Não é q faltou o for?! Pq ninguem me avisou?! > > > Em 22/02/2011 10:17, "Fernando Oliveira" 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" 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 > > > Para: Cascavel Perl Mongers > > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 > > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos > > > > > >>>>>> "Leonardo" == Leonardo Gerheim 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 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Tue Feb 22 06:11:24 2011 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 22 Feb 2011 11:11:24 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: <81790.70879.qm@web30103.mail.mud.yahoo.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: Hmm, você realmente quer a saida na tela formatada ? um PDF não seria mais bontinho?! =S Você pode jogar numa array, depois contar os caracteres do nome (lenght) e somar 2 (o espaço e a virgula) e depois é so você printar na sequencia. Fiz o código usando duas arrays e formantando com sprintf com duas posições: use strict; use warnings; my $nomes = {}; open(my $fh, '<', $ARGV[0]); while (my $linha = <$fh>){ my ($nome, $nota_a, $nota_b) = split(/\s*\,\s*/, $linha); $nome = uc $nome; $nota_b =~ s/\s+//; $nota_a = sprintf('%02d', $nota_a); $nota_b = sprintf('%02d', $nota_b); push(@{$nomes->{$nome}{a}}, $nota_a); push(@{$nomes->{$nome}{b}}, $nota_b); } foreach (sort keys %$nomes){ print $_ . ' ' . join(', ', @{$nomes->{$_}{a}}) . "\n" . (' ' x (length($_) + 1)) . join(', ', @{$nomes->{$_}{b}}) . "\n"; } JOAO 10, 10, 08 15, 10, 09 MARIA 07, 06, 04 09, 09, 10 2011/2/22 Leonardo Gerheim > 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 > > *Para:* Cascavel Perl Mongers > *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 > >> Não é q faltou o for?! Pq ninguem me avisou?! >> >> Em 22/02/2011 10:17, "Fernando Oliveira" >> 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" >> 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 >> > > Para: Cascavel Perl Mongers >> > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >> > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >> > > >> > >>>>>> "Leonardo" == Leonardo Gerheim >> 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 > -- Renato Santos http://www.renatocron.com/blog/ -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From edencardim em gmail.com Tue Feb 22 07:53:53 2011 From: edencardim em gmail.com (Eden Cardim) Date: Tue, 22 Feb 2011 12:53:53 -0300 Subject: [Cascavel-pm] =?utf-8?q?Res=3A__Res=3A_Acesso_aleat=C3=B3rio_?= =?utf-8?q?=C3=A0_arquivos?= In-Reply-To: <81790.70879.qm@web30103.mail.mud.yahoo.com> (Leonardo Gerheim's message of "Tue, 22 Feb 2011 05:58:27 -0800 (PST)") References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: >>>>> "Leonardo" == Leonardo Gerheim writes: Leonardo> A resposta do Fernando foi muito d+, Show de bola mesmo. Leonardo> 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 Leonardo> fizeram eu também fiz, não tão impressionantemente em uma linha. Leonardo> A disposição das notas dever ser a nota A (NEGRITO) em cima na nota B (NORMAL) assim: Leonardo> INPUT: Leonardo> joao,1,1 Leonardo> joao,2,1 Leonardo> joao,1,2 Leonardo> maria,1,1 Leonardo> maria,2,1 Leonardo> maria,1,2 Leonardo> OUTPUT: Leonardo> joao => 1,2,1 Leonardo> 1,1,2 Leonardo> maria => 1,2,1 Leonardo> 1,1,2 Leonardo> Entenderam? Por isso perguntei como faria para avançar e recuar uma linha. Leonardo> Vlw pela força até agora. Não precisa recuar nem avançar a leitura, você só precisa transpor a matriz depois de parsear tudo. Sempre evite fazer acesso aleatório nesse caso, é *muito lento*. Um banco de dados faria uma primeira passagem, acumulando tudo num arquivo temporário e depois faria uma segunda passagem nesse arquivo, fazendo a transposição. Espero que você esteja fazendo esse parse com o intuito de popular um banco de dados :) de qualquer forma: --8<-[ test.pl ]--cut here---------------start------------->8---- use warnings; use strict; use Data::Dump; my %alunos; while (<>) { chomp; my($aluno, @notas) = split /,/, $_; my $tabela = $alunos{$aluno} //= []; push @$tabela, \@notas; } my %transposta; foreach my $aluno (keys %alunos) { my $registros = $alunos{$aluno}; for my $i (0..@$registros-1) { my $linha = $registros->[$i]; for my $j (0..@$linha-1) { $transposta{$aluno}[$j][$i] = $alunos{$aluno}[$i][$j]; } } } for my $aluno (keys %transposta) { print $aluno, ' => '; my $registros = $transposta{$aluno}; my $pad = 0; for my $linha (@$registros) { print ' ' x (length($aluno) + length(' => ')) if $pad++; print join(', ', @$linha), "\n"; } } --8<---------------cut here---------------end--------------->8--- ,----[ cat test_data ] | joao,10,15 | joao,10,10 | joao,8,9 | maria,7,9 | maria,6,9 | maria,4,10 `---- ,----[ perl test.pl test_data ] | joao => 10, 10, 8 | 15, 10, 9 | maria => 7, 6, 4 | 9, 9, 10 `---- -- Eden Cardim Software Engineer +55 73 9986-3963 edencardim.com From ricardostock em bol.com.br Tue Feb 22 08:55:57 2011 From: ricardostock em bol.com.br (Ricardo Stock) Date: Tue, 22 Feb 2011 13:55:57 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A__Res=3A_Acesso_aleat=F3rio_?= =?iso-8859-1?q?=E0_arquivos?= References: <716106.97580.qm@web30107.mail.mud.yahoo.com><485066.23109.qm@web30103.mail.mud.yahoo.com><81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: 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 Para: Cascavel Perl Mongers 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 Não é q faltou o for?! Pq ninguem me avisou?! Em 22/02/2011 10:17, "Fernando Oliveira" 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" 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 > > Para: Cascavel Perl Mongers > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos > > > >>>>>> "Leonardo" == Leonardo Gerheim 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 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From leonardo.ruoso em gmail.com Tue Feb 22 09:09:46 2011 From: leonardo.ruoso em gmail.com (Leonardo Ruoso) Date: Tue, 22 Feb 2011 14:09:46 -0300 Subject: [Cascavel-pm] =?utf-8?b?UmVzOiBSZXM6IEFjZXNzbyBhbGVhdMOzcmlvIMOg?= =?utf-8?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: 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 > 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 > *Para:* Cascavel Perl Mongers > *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 > >> Não é q faltou o for?! Pq ninguem me avisou?! >> >> Em 22/02/2011 10:17, "Fernando Oliveira" >> 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" >> 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 >> > > Para: Cascavel Perl Mongers >> > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >> > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >> > > >> > >>>>>> "Leonardo" == Leonardo Gerheim >> 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: From fernandocorrea em gmail.com Tue Feb 22 09:12:08 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 14:12:08 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: Ninguém tá afim de jogar? Em 22/02/2011, às 14:09, Leonardo Ruoso escreveu: > 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 > 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 >> Para: Cascavel Perl Mongers >> 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 >> Não é q faltou o for?! Pq ninguem me avisou?! >> >> >> Em 22/02/2011 10:17, "Fernando Oliveira" 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" 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 >> > > Para: Cascavel Perl Mongers >> > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >> > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >> > > >> > >>>>>> "Leonardo" == Leonardo Gerheim 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 Just Another Perl Hacker Fernando Corrêa de Oliveira fernandocorrea em gmail.com -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Feb 22 09:13:21 2011 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 22 Feb 2011 14:13:21 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: > 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 : > 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 >> >> 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 >> Para: Cascavel Perl Mongers >> 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  >>> >>> Não é q faltou o for?! Pq ninguem me avisou?! >>> >>> Em 22/02/2011 10:17, "Fernando Oliveira" >>> 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" >>> > 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 >>> > > Para: Cascavel Perl Mongers >>> > > Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >>> > > Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >>> > > >>> > >>>>>> "Leonardo" == Leonardo Gerheim >>> > >>>>>> 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 > From fernandocorrea em gmail.com Tue Feb 22 09:27:06 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 14:27:06 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> Bom, vou ser o primento então... Minha 1a tacada: perl -F, -nalE'push@{$a{$F[0]}},$F[1];push@{$b{$F[0]}},$F[2];END{say"$_ => ",join(", ",@{$a{$_}}),"$/\t",join", ",@{$b{$_}}for keys%b}' arquivo.txt Em 22/02/2011, às 14:13, Blabos de Blebe escreveu: >> 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 : >> 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 >>> >>> 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 >>> Para: Cascavel Perl Mongers >>> 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 >>>> >>>> Não é q faltou o for?! Pq ninguem me avisou?! >>>> >>>> Em 22/02/2011 10:17, "Fernando Oliveira" >>>> 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" >>>>> 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 >>>>>> Para: Cascavel Perl Mongers >>>>>> Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >>>>>> Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >>>>>> >>>>>>>>>>> "Leonardo" == Leonardo Gerheim >>>>>>>>>>> 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 >> > _______________________________________________ > 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 From daniel.oliveira.mantovani em gmail.com Tue Feb 22 09:41:51 2011 From: daniel.oliveira.mantovani em gmail.com (Daniel de Oliveira Mantovani) Date: Tue, 22 Feb 2011 14:41:51 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> Message-ID: Fernando, sem negrito... perl -nale '@x=split/,/,$_;push(@{$z->{shift @x}}, em x);END{for$a(keys%{$z}){print"$a => ".join",",@{$z->{$a}}}}' arquivo.txt 2011/2/22 Fernando Corrêa de Oliveira : > Bom, vou ser o primento então... > Minha 1a tacada: > > perl -F, -nalE'push@{$a{$F[0]}},$F[1];push@{$b{$F[0]}},$F[2];END{say"$_ => ",join(", ",@{$a{$_}}),"$/\t",join", ",@{$b{$_}}for keys%b}' arquivo.txt > > > Em 22/02/2011, às 14:13, Blabos de Blebe escreveu: > >>> 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 : >>> 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 >>>> >>>> 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 >>>> Para: Cascavel Perl Mongers >>>> 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 >>>>> >>>>> Não é q faltou o for?! Pq ninguem me avisou?! >>>>> >>>>> Em 22/02/2011 10:17, "Fernando Oliveira" >>>>> 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" >>>>>> 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 >>>>>>> Para: Cascavel Perl Mongers >>>>>>> Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >>>>>>> Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >>>>>>> >>>>>>>>>>>> "Leonardo" == Leonardo Gerheim >>>>>>>>>>>> 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 >>> >> _______________________________________________ >> 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 > -- "If you?ve never written anything thoughtful, then you?ve never had any difficult, important, or interesting thoughts. That?s the secret: people who don?t write, are people who don?t think." From fernandocorrea em gmail.com Tue Feb 22 09:47:11 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 14:47:11 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> Message-ID: <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> Mantovani, As notas B tem q ser a baixo das notas A... Em 22/02/2011, às 14:41, Daniel de Oliveira Mantovani escreveu: > perl -nale '@x=split/,/,$_;push(@{$z->{shift > @x}}, em x);END{for$a(keys%{$z}){print"$a => ".join",",@{$z->{$a}}}}' Just Another Perl Hacker Fernando Corrêa de Oliveira fernandocorrea em gmail.com From daniel.oliveira.mantovani em gmail.com Tue Feb 22 09:47:44 2011 From: daniel.oliveira.mantovani em gmail.com (Daniel de Oliveira Mantovani) Date: Tue, 22 Feb 2011 14:47:44 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> Message-ID: Fernando, eu comecei a fazer a minha tacada, quando você escreveu o seu primeiro código. Então o golf é baseado no seu primeiro código. "perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print "$_ => ", join ", ", @{ $pessoa{$_} } for keys %pessoa}' arquivo.txt" 2011/2/22 Daniel de Oliveira Mantovani : > Fernando, sem negrito... > > perl -nale '@x=split/,/,$_;push(@{$z->{shift > @x}}, em x);END{for$a(keys%{$z}){print"$a => ".join",",@{$z->{$a}}}}' > arquivo.txt > > 2011/2/22 Fernando Corrêa de Oliveira : >> Bom, vou ser o primento então... >> Minha 1a tacada: >> >> perl -F, -nalE'push@{$a{$F[0]}},$F[1];push@{$b{$F[0]}},$F[2];END{say"$_ => ",join(", ",@{$a{$_}}),"$/\t",join", ",@{$b{$_}}for keys%b}' arquivo.txt >> >> >> Em 22/02/2011, às 14:13, Blabos de Blebe escreveu: >> >>>> 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 : >>>> 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 >>>>> >>>>> 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 >>>>> Para: Cascavel Perl Mongers >>>>> 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 >>>>>> >>>>>> Não é q faltou o for?! Pq ninguem me avisou?! >>>>>> >>>>>> Em 22/02/2011 10:17, "Fernando Oliveira" >>>>>> 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" >>>>>>> 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 >>>>>>>> Para: Cascavel Perl Mongers >>>>>>>> Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >>>>>>>> Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >>>>>>>> >>>>>>>>>>>>> "Leonardo" == Leonardo Gerheim >>>>>>>>>>>>> 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 >>>> >>> _______________________________________________ >>> 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 >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > -- "If you?ve never written anything thoughtful, then you?ve never had any difficult, important, or interesting thoughts. That?s the secret: people who don?t write, are people who don?t think." From daniel.oliveira.mantovani em gmail.com Tue Feb 22 09:51:00 2011 From: daniel.oliveira.mantovani em gmail.com (Daniel de Oliveira Mantovani) Date: Tue, 22 Feb 2011 14:51:00 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> Message-ID: Fernando, O seu output: mantovani em mantovani-laptop:~$ perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print "$_ => ", join ", ", @{ $pessoa{$_} } for keys %pessoa}' arquivo.txt joao => 10, 15, 10, 10 , 8, 9 maria => 7, 9, 6, 9, 4, 10 O meu output: mantovani em mantovani-laptop:~$ perl -nale '@x=split/,/,$_;push(@{$z->{shift em x}}, em x);END{for$a(keys%{$z}){print"$a => ".join",",@{$z->{$a}}}}' arquivo.txt joao => 10,15,10,10 ,8,9 maria => 7,9,6,9,4,10 O arquivo que eu estou usando, mantovani em mantovani-laptop:~$ cat arquivo.txt joao,10,15 joao,10,10 joao,8,9 maria,7,9 maria,6,9 maria,4,10 2011/2/22 Fernando Corrêa de Oliveira : > Mantovani, > As notas B tem q ser a baixo das notas A... > > Em 22/02/2011, às 14:41, Daniel de Oliveira Mantovani escreveu: > >> perl -nale '@x=split/,/,$_;push(@{$z->{shift >> @x}}, em x);END{for$a(keys%{$z}){print"$a => ".join",",@{$z->{$a}}}}' > > 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 > -- "If you?ve never written anything thoughtful, then you?ve never had any difficult, important, or interesting thoughts. That?s the secret: people who don?t write, are people who don?t think." From fernandocorrea em gmail.com Tue Feb 22 09:53:16 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 14:53:16 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> Message-ID: <195C3AAE-A7DF-4C2E-89DE-9B60CB00C444@gmail.com> tá bom então... perl -F, -nalE'push(@{$z{shift em F}}, em F);END{say"$_ => ".join",",@{$z{$_}}for keys%z}' arquivo.txt Em 22/02/2011, às 14:47, Daniel de Oliveira Mantovani escreveu: > Fernando, eu comecei a fazer a minha tacada, quando você escreveu o > seu primeiro código. Então o golf é baseado no seu primeiro código. > > "perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print "$_ > => ", join ", ", @{ $pessoa{$_} } for keys %pessoa}' arquivo.txt" > > 2011/2/22 Daniel de Oliveira Mantovani : >> Fernando, sem negrito... >> >> perl -nale '@x=split/,/,$_;push(@{$z->{shift >> @x}}, em x);END{for$a(keys%{$z}){print"$a => ".join",",@{$z->{$a}}}}' >> arquivo.txt >> >> 2011/2/22 Fernando Corrêa de Oliveira : >>> Bom, vou ser o primento então... >>> Minha 1a tacada: >>> >>> perl -F, -nalE'push@{$a{$F[0]}},$F[1];push@{$b{$F[0]}},$F[2];END{say"$_ => ",join(", ",@{$a{$_}}),"$/\t",join", ",@{$b{$_}}for keys%b}' arquivo.txt >>> >>> >>> Em 22/02/2011, às 14:13, Blabos de Blebe escreveu: >>> >>>>> 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 : >>>>> 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 >>>>>> >>>>>> 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 >>>>>> Para: Cascavel Perl Mongers >>>>>> 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 >>>>>>> >>>>>>> Não é q faltou o for?! Pq ninguem me avisou?! >>>>>>> >>>>>>> Em 22/02/2011 10:17, "Fernando Oliveira" >>>>>>> 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" >>>>>>>> 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 >>>>>>>>> Para: Cascavel Perl Mongers >>>>>>>>> Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35 >>>>>>>>> Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos >>>>>>>>> >>>>>>>>>>>>>> "Leonardo" == Leonardo Gerheim >>>>>>>>>>>>>> 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 >>>>> >>>> _______________________________________________ >>>> 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 >>> >> >> >> >> -- >> "If you?ve never written anything thoughtful, then you?ve never had >> any difficult, important, or interesting thoughts. That?s the secret: >> people who don?t write, are people who don?t think." >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From renato.cron em gmail.com Tue Feb 22 09:55:12 2011 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 22 Feb 2011 14:55:12 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> Message-ID: Versão modificada da do mantovani, apenas usei $_ no split/for (oO, fechei o terminal, rewritting...) perl -nale '@x=split/,/;push(@{$z->{shift em x}}, em x);END{for(keys%{$z}){print"$_ => ".join",",@{$z->{$_}}}}'arquivo.txt 2011/2/22 Daniel de Oliveira Mantovani > Fernando, > O seu output: > > > mantovani em mantovani-laptop:~$ perl -F, -nale 'push @{ $pessoa{$F[0]} > }, @F[1 .. $#F]; END{print "$_ => ", join ", ", @{ $pessoa{$_} } for > keys %pessoa}' arquivo.txt > joao => 10, 15, 10, 10 , 8, 9 > maria => 7, 9, 6, 9, 4, 10 > > > O meu output: > > mantovani em mantovani-laptop:~$ perl -nale > '@x=split/,/,$_;push(@{$z->{shift em x}}, em x);END{for$a(keys%{$z}){print"$a > => ".join",",@{$z->{$a}}}}' arquivo.txt > joao => 10,15,10,10 ,8,9 > maria => 7,9,6,9,4,10 > > > O arquivo que eu estou usando, > > mantovani em mantovani-laptop:~$ cat arquivo.txt > joao,10,15 > joao,10,10 > joao,8,9 > maria,7,9 > maria,6,9 > maria,4,10 > > > 2011/2/22 Fernando Corrêa de Oliveira : > > Mantovani, > > As notas B tem q ser a baixo das notas A... > > > > Em 22/02/2011, às 14:41, Daniel de Oliveira Mantovani escreveu: > > > >> perl -nale '@x=split/,/,$_;push(@{$z->{shift > >> @x}}, em x);END{for$a(keys%{$z}){print"$a => ".join",",@{$z->{$a}}}}' > > > > 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 > > > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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: From fernandocorrea em gmail.com Tue Feb 22 09:57:25 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 14:57:25 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> Message-ID: O meu ainda tá menor... Em 22/02/2011, às 14:55, Renato Santos escreveu: > perl -nale '@x=split/,/;push(@{$z->{shift em x}}, em x);END{for(keys%{$z}){print"$_ => ".join",",@{$z->{$_}}}}'arquivo.txt Just Another Perl Hacker Fernando Corrêa de Oliveira fernandocorrea em gmail.com From fernandocorrea em gmail.com Tue Feb 22 09:58:22 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 14:58:22 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> Message-ID: <3EF7C019-E775-408F-AF23-B0457F654DA6@gmail.com> -2 perl -F, -nalE'push@{$z{shift em F}}, em F;END{say"$_ => ".join",",@{$z{$_}}for keys%z}' arquivo.txt Em 22/02/2011, às 14:55, Renato Santos escreveu: > perl -nale '@x=split/,/;push(@{$z->{shift em x}}, em x);END{for(keys%{$z}){print"$_ => ".join",",@{$z->{$_}}}}'arquivo.txt Just Another Perl Hacker Fernando Corrêa de Oliveira fernandocorrea em gmail.com From edencardim em gmail.com Tue Feb 22 10:25:54 2011 From: edencardim em gmail.com (Eden Cardim) Date: Tue, 22 Feb 2011 15:25:54 -0300 Subject: [Cascavel-pm] =?utf-8?q?Res=3A__Res=3A_Acesso_aleat=C3=B3rio_?= =?utf-8?q?=C3=A0_arquivos?= In-Reply-To: (Ricardo Stock's message of "Tue, 22 Feb 2011 13:55:57 -0300") References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: >>>>> "Ricardo" == Ricardo Stock writes: Ricardo> Fernando parabens pelo código. Perfeito, lindo funcional e Ricardo> inelegivel para meros humanos :-) tipica daqueles que falam Ricardo> que o perl é um monte de codigo bizonho. Isso que você falou é similar a você reclamar de um filme de comédia dizendo que não teve ação. Linguagens humanas se manifestam sob várias formas e gêneros: prosa (novela, conto, romance), poesia (formas: narrativas, sátiras, líricas, etc...; gêneros: sonetos, odes, etc...) e literatura técnica (teses, referências, specificações, etc.). Perl foi explicitamente desenvolvido pelo Larry Wall para ser parecida com linguagens humanas (na época, ele estava estudando linguística para poder ensinar a Bíblia para um grupo étnico que ainda não tinha uma versão do livro no seu idioma) e se manifesta de diversas formas também. Observe que o meu código e o código do Fernando ambos fazem a mesma coisa, mas com raciocínios e propósitos de escrita diferentes. Digamos que ele escreveu igual o Gregório de Mattos e eu escrevi igual o Graciliano Ramos (e o pessoal que reclama gosta de ler/escrever igual a Stephenie Meyer). É uma lástima que as pessoas não enxerguem o estímulo cognitivo proveniente desse tipo de uso criativo da linguagem (qualquer uma, não só perl). Por isso que precisam de caras como o Guido, o Larry e o Linus pra tocar o rebanho... béééé! -- Eden Cardim Software Engineer +55 73 9986-3963 edencardim.com From general_andrade em yahoo.com.br Tue Feb 22 12:38:14 2011 From: general_andrade em yahoo.com.br (Leonardo Gerheim) Date: Tue, 22 Feb 2011 12:38:14 -0800 (PST) Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A__Res=3A__Res=3A_Acesso_aleat?= =?iso-8859-1?q?=F3rio_=E0_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: <193406.47264.qm@web30102.mail.mud.yahoo.com> Obrigado pessoal por todas as dicas. Fernando tem como voce mandar aquele codigo comentado? []s ________________________________ De: Eden Cardim Para: Cascavel Perl Mongers Enviadas: Terça-feira, 22 de Fevereiro de 2011 15:25:54 Assunto: Re: [Cascavel-pm] Res: Res: Acesso aleatório à arquivos >>>>> "Ricardo" == Ricardo Stock writes: Ricardo> Fernando parabens pelo código. Perfeito, lindo funcional e Ricardo> inelegivel para meros humanos :-) tipica daqueles que falam Ricardo> que o perl é um monte de codigo bizonho. Isso que você falou é similar a você reclamar de um filme de comédia dizendo que não teve ação. Linguagens humanas se manifestam sob várias formas e gêneros: prosa (novela, conto, romance), poesia (formas: narrativas, sátiras, líricas, etc...; gêneros: sonetos, odes, etc...) e literatura técnica (teses, referências, specificações, etc.). Perl foi explicitamente desenvolvido pelo Larry Wall para ser parecida com linguagens humanas (na época, ele estava estudando linguística para poder ensinar a Bíblia para um grupo étnico que ainda não tinha uma versão do livro no seu idioma) e se manifesta de diversas formas também. Observe que o meu código e o código do Fernando ambos fazem a mesma coisa, mas com raciocínios e propósitos de escrita diferentes. Digamos que ele escreveu igual o Gregório de Mattos e eu escrevi igual o Graciliano Ramos (e o pessoal que reclama gosta de ler/escrever igual a Stephenie Meyer). É uma lástima que as pessoas não enxerguem o estímulo cognitivo proveniente desse tipo de uso criativo da linguagem (qualquer uma, não só perl). Por isso que precisam de caras como o Guido, o Larry e o Linus pra tocar o rebanho... béééé! -- 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 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From edencardim em gmail.com Tue Feb 22 12:39:15 2011 From: edencardim em gmail.com (Eden Cardim) Date: Tue, 22 Feb 2011 17:39:15 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: <3EF7C019-E775-408F-AF23-B0457F654DA6@gmail.com> References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> <3EF7C019-E775-408F-AF23-B0457F654DA6@gmail.com> Message-ID: 2011/2/22 Fernando Corrêa de Oliveira : > -2 > > perl -F, -nalE'push@{$z{shift em F}}, em F;END{say"$_ => ".join",",@{$z{$_}}for keys%z}' arquivo.txt -6 >:) perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for keys%z' arquivo.txt --    Eden Cardim       Need help with your Catalyst or DBIx::Class project?   Code Monkey                    http://www.shadowcat.co.uk/catalyst/  Shadowcat Systems Ltd.  Want a managed development or deployment platform? http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/ From renato.cron em gmail.com Tue Feb 22 12:51:07 2011 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 22 Feb 2011 17:51:07 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> <3EF7C019-E775-408F-AF23-B0457F654DA6@gmail.com> Message-ID: Leornado, Comentários in-line fica difícil :P você pode usar a versão que eu mandei, faz o que você pediu, a unica coisa que faz a mais é o upper case e o sprintf para deixar todas as notas com 2 letras. 2011/2/22 Eden Cardim > 2011/2/22 Fernando Corrêa de Oliveira : > > -2 > > > > perl -F, -nalE'push@{$z{shift em F}}, em F;END{say"$_ => > ".join",",@{$z{$_}}for keys%z}' arquivo.txt > > -6 > > >:) > > perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for > keys%z' arquivo.txt > > -- > Eden Cardim Need help with your Catalyst or DBIx::Class project? > Code Monkey http://www.shadowcat.co.uk/catalyst/ > Shadowcat Systems Ltd. Want a managed development or deployment platform? > http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ > _______________________________________________ > 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: From fernandocorrea em gmail.com Tue Feb 22 13:05:39 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 18:05:39 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A_Res=3A_Acesso_aleat=F3rio_=E0?= =?iso-8859-1?q?_arquivos?= In-Reply-To: References: <716106.97580.qm@web30107.mail.mud.yahoo.com> <485066.23109.qm@web30103.mail.mud.yahoo.com> <81790.70879.qm@web30103.mail.mud.yahoo.com> <426A5A4D-8F10-410E-86FD-69028A8A3D9E@gmail.com> <2BC2D019-4B6B-4193-A636-3408A24A8459@gmail.com> <3EF7C019-E775-408F-AF23-B0457F654DA6@gmail.com> Message-ID: Eden, Aqui deu erro... MacSmokeBook:~ smokemachine$ perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for keys%z' arquivo.txt String found where operator expected at -e line 1, near "say"$_ => @{$z{$_}}"" syntax error at -e line 1, near "say"$_ => @{$z{$_}}"" Execution of -e aborted due to compilation errors. MacSmokeBook:~ smokemachine$ Em 22/02/2011, às 17:39, Eden Cardim escreveu: > perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for > keys%z' arquivo.txt Just Another Perl Hacker Fernando Corrêa de Oliveira fernandocorrea em gmail.com From ricardostock em bol.com.br Tue Feb 22 13:19:51 2011 From: ricardostock em bol.com.br (Ricardo Stock) Date: Tue, 22 Feb 2011 18:19:51 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?Res=3A__Res=3A_Acesso_aleat=F3rio_?= =?iso-8859-1?q?=E0_arquivos?= References: <716106.97580.qm@web30107.mail.mud.yahoo.com><485066.23109.qm@web30103.mail.mud.yahoo.com><81790.70879.qm@web30103.mail.mud.yahoo.com> Message-ID: Ola Eden, tudo bem. e sem flame. Me perdoe se não entendeu meu comentário, em nenhum momento tentei falar mal do código ou da forma que ele foi escrito. Pelo contrário é algo que eu não conseguiria fazer, mas fiquei curioso em aprender, até mesmo pelas competições que existem sobre tal. Não quis falar de linguagem natural, humana ou qualquer outra. Apenas lembrei de vários comentários que vi na net, antes de aprender perl, do porque não aprender a programar em perl, por ter um monte de código "bizonho", mas é "bizonho" para aqueles que não entendem a filosofia perl, onde outros para o mesmo problema escreveriam um código com 50, 100 ou mais linhas com acesso a banco e fru fru. Mas não, perl se mostrou mais uma vez o porque da sua força, ou seja, resolveu um problema com apenas uma linha. Quando falei em "meros humanos" falei das pessoas que não entendem de perl :-) Quanto ao seu código, o vi também e o achei muito interessante e o guardei. "Existe sempre mais de uma maneira" Novamente, me perdoe se fui mal entendido. :-) Ricardo Stock ----- Original Message ----- From: "Eden Cardim" To: "Cascavel Perl Mongers" Sent: Tuesday, February 22, 2011 3:25 PM Subject: Re: [Cascavel-pm] Res: Res: Acesso aleatório à arquivos >>>>> "Ricardo" == Ricardo Stock writes: Ricardo> Fernando parabens pelo código. Perfeito, lindo funcional e Ricardo> inelegivel para meros humanos :-) tipica daqueles que falam Ricardo> que o perl é um monte de codigo bizonho. Isso que você falou é similar a você reclamar de um filme de comédia dizendo que não teve ação. Linguagens humanas se manifestam sob várias formas e gêneros: prosa (novela, conto, romance), poesia (formas: narrativas, sátiras, líricas, etc...; gêneros: sonetos, odes, etc...) e literatura técnica (teses, referências, specificações, etc.). Perl foi explicitamente desenvolvido pelo Larry Wall para ser parecida com linguagens humanas (na época, ele estava estudando linguística para poder ensinar a Bíblia para um grupo étnico que ainda não tinha uma versão do livro no seu idioma) e se manifesta de diversas formas também. Observe que o meu código e o código do Fernando ambos fazem a mesma coisa, mas com raciocínios e propósitos de escrita diferentes. Digamos que ele escreveu igual o Gregório de Mattos e eu escrevi igual o Graciliano Ramos (e o pessoal que reclama gosta de ler/escrever igual a Stephenie Meyer). É uma lástima que as pessoas não enxerguem o estímulo cognitivo proveniente desse tipo de uso criativo da linguagem (qualquer uma, não só perl). Por isso que precisam de caras como o Guido, o Larry e o Linus pra tocar o rebanho... béééé! -- 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 From braun.lima em gmail.com Tue Feb 22 14:17:43 2011 From: braun.lima em gmail.com (Marco Lima) Date: Tue, 22 Feb 2011 22:17:43 +0000 Subject: [Cascavel-pm] =?utf-8?q?RES=3A_Re=3A____Acesso_aleat=C3=B3rio_?= =?utf-8?q?=C3=A0_arquivos?= Message-ID: <4d64360b.813ee30a.6ba1.700a@mx.google.com> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! Me diz aí se pelo menos acertei no green! Eden: perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for keys%z' arquivo.txt --    Eden Cardim       Need help with your Catalyst or DBIx::Class project?   Code Monkey                    http://www.shadowcat.co.uk/catalyst/  Shadowcat Systems Ltd.  Want a managed development or deployment platform? http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/ _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm From daniel.oliveira.mantovani em gmail.com Tue Feb 22 14:19:56 2011 From: daniel.oliveira.mantovani em gmail.com (Daniel de Oliveira Mantovani) Date: Tue, 22 Feb 2011 19:19:56 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Acesso_aleat=F3rio_=E0_?= =?iso-8859-1?q?arquivos?= In-Reply-To: <4d64360b.813ee30a.6ba1.700a@mx.google.com> References: <4d64360b.813ee30a.6ba1.700a@mx.google.com> Message-ID: 2011/2/22 Marco Lima : > Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt > fail > Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! > > Me diz aí se pelo menos acertei no green! > > Eden: > perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for > keys%z' arquivo.txt > > -- >    Eden Cardim       Need help with your Catalyst or DBIx::Class project? >   Code Monkey                    http://www.shadowcat.co.uk/catalyst/ >  Shadowcat Systems Ltd.  Want a managed development or deployment platform? > http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/ > _______________________________________________ > 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 > -- "If you?ve never written anything thoughtful, then you?ve never had any difficult, important, or interesting thoughts. That?s the secret: people who don?t write, are people who don?t think." From fernandocorrea em gmail.com Tue Feb 22 14:23:22 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 19:23:22 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Acesso_aleat=F3rio_=E0_?= =?iso-8859-1?q?arquivos?= In-Reply-To: References: <4d64360b.813ee30a.6ba1.700a@mx.google.com> Message-ID: <90AA2EC7-4BA4-458C-9687-47648BEEED29@gmail.com> Po mantovani!!! fail... mas pq?! Corrigindo, a pedido do mago, o código feito em celular: perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' arquivo.txt Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: > 2011/2/22 Marco Lima : >> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >> > > fail > >> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >> >> Me diz aí se pelo menos acertei no green! >> >> Eden: >> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >> keys%z' arquivo.txt >> >> -- >> Eden Cardim Need help with your Catalyst or DBIx::Class project? >> Code Monkey http://www.shadowcat.co.uk/catalyst/ >> Shadowcat Systems Ltd. Want a managed development or deployment platform? >> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >> _______________________________________________ >> 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 >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From fernandocorrea em gmail.com Tue Feb 22 14:24:43 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 19:24:43 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Acesso_aleat=F3rio_=E0_?= =?iso-8859-1?q?arquivos?= In-Reply-To: References: <4d64360b.813ee30a.6ba1.700a@mx.google.com> Message-ID: <127B379B-035E-4779-A2DC-AB199D110681@gmail.com> nova tacada: perl -nE '$z{$1}.=$2if/(\w+)(,.*)/;END{say"$_=>$z{$_}"for keys%z}' arquivo.txt Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: > 2011/2/22 Marco Lima : >> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >> > > fail > >> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >> >> Me diz aí se pelo menos acertei no green! >> >> Eden: >> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >> keys%z' arquivo.txt >> >> -- >> Eden Cardim Need help with your Catalyst or DBIx::Class project? >> Code Monkey http://www.shadowcat.co.uk/catalyst/ >> Shadowcat Systems Ltd. Want a managed development or deployment platform? >> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >> _______________________________________________ >> 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 >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From braun.lima em gmail.com Tue Feb 22 14:33:28 2011 From: braun.lima em gmail.com (Marco Lima) Date: Tue, 22 Feb 2011 22:33:28 +0000 Subject: [Cascavel-pm] =?utf-8?q?RES=3A_Re=3A___Re=3A_Acesso_aleat=C3=B3ri?= =?utf-8?q?o_=C3=A0_arquivos?= Message-ID: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> Mantovani ! Fail eh vc hehehe o problema foi com o autocomplemento do celular! Fernando vc num disse quantas tacadas e se consegui chegar no green! Marco Lima Mobile braun.lima em gmail.com +55 21 76578103 -----Msg original----- De: Fernando Corrêa de Oliveira Enviado: 22/02/2011 19:23:22 Assunto: Re: [Cascavel-pm] RES: Re: Acesso aleatório à arquivos Po mantovani!!! fail... mas pq?! Corrigindo, a pedido do mago, o código feito em celular: perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' arquivo.txt Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: > 2011/2/22 Marco Lima : >> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >> > > fail > >> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >> >> Me diz aí se pelo menos acertei no green! >> >> Eden: >> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >> keys%z' arquivo.txt >> >> -- >> Eden Cardim Need help with your Catalyst or DBIx::Class project? >> Code Monkey http://www.shadowcat.co.uk/catalyst/ >> Shadowcat Systems Ltd. Want a managed development or deployment platform? >> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >> _______________________________________________ >> 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 >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From fernandocorrea em gmail.com Tue Feb 22 14:35:41 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 19:35:41 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Acesso_aleat=F3rio_=E0_?= =?iso-8859-1?q?arquivos?= In-Reply-To: References: <4d64360b.813ee30a.6ba1.700a@mx.google.com> Message-ID: <4980F114-2A5D-45EF-AAD2-07B0F610E5E9@gmail.com> Nova tacada: perl -nE '$z{$`}.=$&if/,(.*)/;END{say"$_=>$z{$_}"for keys%z}' arquivo.txt Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: > 2011/2/22 Marco Lima : >> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >> > > fail > >> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >> >> Me diz aí se pelo menos acertei no green! >> >> Eden: >> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >> keys%z' arquivo.txt >> >> -- >> Eden Cardim Need help with your Catalyst or DBIx::Class project? >> Code Monkey http://www.shadowcat.co.uk/catalyst/ >> Shadowcat Systems Ltd. Want a managed development or deployment platform? >> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >> _______________________________________________ >> 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 >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From fernandocorrea em gmail.com Tue Feb 22 14:36:32 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 19:36:32 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Acesso_aleat=F3rio_=E0_?= =?iso-8859-1?q?arquivos?= In-Reply-To: References: <4d64360b.813ee30a.6ba1.700a@mx.google.com> Message-ID: <9D357098-7831-4C68-BA8A-4D77209A73F3@gmail.com> estupidez a minha... perl -nE '$z{$`}.=$&if/,.*/;END{say"$_=>$z{$_}"for keys%z}' arquivo.txt Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: > 2011/2/22 Marco Lima : >> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >> > > fail > >> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >> >> Me diz aí se pelo menos acertei no green! >> >> Eden: >> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >> keys%z' arquivo.txt >> >> -- >> Eden Cardim Need help with your Catalyst or DBIx::Class project? >> Code Monkey http://www.shadowcat.co.uk/catalyst/ >> Shadowcat Systems Ltd. Want a managed development or deployment platform? >> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >> _______________________________________________ >> 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 >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From daniel.oliveira.mantovani em gmail.com Tue Feb 22 14:42:39 2011 From: daniel.oliveira.mantovani em gmail.com (Daniel de Oliveira Mantovani) Date: Tue, 22 Feb 2011 19:42:39 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Re=3A_Acesso_aleat=F3ri?= =?iso-8859-1?q?o_=E0_arquivos?= In-Reply-To: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> References: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> Message-ID: 2011/2/22 Marco Lima : > Mantovani ! Fail eh vc hehehe o problema foi com o autocomplemento do celular! > Eu estava montando o golf com regexp na cabeça, e ia ver isso depois que eu terminasse de trabalhar, aí você mandou um golf com regexp :P > Fernando vc num disse quantas tacadas e se consegui chegar no green! > > Marco Lima > Mobile > braun.lima em gmail.com > +55 21 76578103 > -----Msg original----- > De: Fernando Corrêa de Oliveira > Enviado:  22/02/2011 19:23:22 > Assunto:  Re: [Cascavel-pm] RES: Re: Acesso aleatório à arquivos > > Po mantovani!!! fail... mas pq?! > Corrigindo, a pedido do mago, o código feito em celular: > > perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' arquivo.txt > > Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: > >> 2011/2/22 Marco Lima : >>> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >>> >> >> fail >> >>> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >>> >>> Me diz aí se pelo menos acertei no green! >>> >>> Eden: >>> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >>> keys%z' arquivo.txt >>> >>> -- >>>    Eden Cardim       Need help with your Catalyst or DBIx::Class project? >>>   Code Monkey                    http://www.shadowcat.co.uk/catalyst/ >>>  Shadowcat Systems Ltd.  Want a managed development or deployment platform? >>> http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/ >>> _______________________________________________ >>> 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 >>> >> >> >> >> -- >> "If you?ve never written anything thoughtful, then you?ve never had >> any difficult, important, or interesting thoughts. That?s the secret: >> people who don?t write, are people who don?t think." >> _______________________________________________ >> 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 -- "If you?ve never written anything thoughtful, then you?ve never had any difficult, important, or interesting thoughts. That?s the secret: people who don?t write, are people who don?t think." From daniel.oliveira.mantovani em gmail.com Tue Feb 22 14:43:10 2011 From: daniel.oliveira.mantovani em gmail.com (Daniel de Oliveira Mantovani) Date: Tue, 22 Feb 2011 19:43:10 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Re=3A_Acesso_aleat=F3ri?= =?iso-8859-1?q?o_=E0_arquivos?= In-Reply-To: References: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> Message-ID: Mas mesmo assim, o seu está bem menor do que eu estava pensando. 2011/2/22 Daniel de Oliveira Mantovani : > 2011/2/22 Marco Lima : >> Mantovani ! Fail eh vc hehehe o problema foi com o autocomplemento do celular! >> > > Eu estava montando o golf com regexp na cabeça, e ia ver isso depois > que eu terminasse de trabalhar, aí você mandou um golf com regexp :P > >> Fernando vc num disse quantas tacadas e se consegui chegar no green! >> >> Marco Lima >> Mobile >> braun.lima em gmail.com >> +55 21 76578103 >> -----Msg original----- >> De: Fernando Corrêa de Oliveira >> Enviado:  22/02/2011 19:23:22 >> Assunto:  Re: [Cascavel-pm] RES: Re: Acesso aleatório à arquivos >> >> Po mantovani!!! fail... mas pq?! >> Corrigindo, a pedido do mago, o código feito em celular: >> >> perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' arquivo.txt >> >> Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: >> >>> 2011/2/22 Marco Lima : >>>> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >>>> >>> >>> fail >>> >>>> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >>>> >>>> Me diz aí se pelo menos acertei no green! >>>> >>>> Eden: >>>> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >>>> keys%z' arquivo.txt >>>> >>>> -- >>>>    Eden Cardim       Need help with your Catalyst or DBIx::Class project? >>>>   Code Monkey                    http://www.shadowcat.co.uk/catalyst/ >>>>  Shadowcat Systems Ltd.  Want a managed development or deployment platform? >>>> http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/ >>>> _______________________________________________ >>>> 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 >>>> >>> >>> >>> >>> -- >>> "If you?ve never written anything thoughtful, then you?ve never had >>> any difficult, important, or interesting thoughts. That?s the secret: >>> people who don?t write, are people who don?t think." >>> _______________________________________________ >>> 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 > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > -- "If you?ve never written anything thoughtful, then you?ve never had any difficult, important, or interesting thoughts. That?s the secret: people who don?t write, are people who don?t think." From fernandocorrea em gmail.com Tue Feb 22 14:55:33 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 19:55:33 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Re=3A_Acesso_aleat=F3ri?= =?iso-8859-1?q?o_=E0_arquivos?= In-Reply-To: References: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> Message-ID: <5947B0E1-42C5-474C-8004-A2E96C32AC2B@gmail.com> -1 perl -plE'$z{$`}.=$&if/,.*/;}for(keys%z){$_="$_=>$z{$_}"' arquivo.txt Em 22/02/2011, às 19:43, Daniel de Oliveira Mantovani escreveu: > Mas mesmo assim, o seu está bem menor do que eu estava pensando. > > 2011/2/22 Daniel de Oliveira Mantovani : >> 2011/2/22 Marco Lima : >>> Mantovani ! Fail eh vc hehehe o problema foi com o autocomplemento do celular! >>> >> >> Eu estava montando o golf com regexp na cabeça, e ia ver isso depois >> que eu terminasse de trabalhar, aí você mandou um golf com regexp :P >> >>> Fernando vc num disse quantas tacadas e se consegui chegar no green! >>> >>> Marco Lima >>> Mobile >>> braun.lima em gmail.com >>> +55 21 76578103 >>> -----Msg original----- >>> De: Fernando Corrêa de Oliveira >>> Enviado: 22/02/2011 19:23:22 >>> Assunto: Re: [Cascavel-pm] RES: Re: Acesso aleatório à arquivos >>> >>> Po mantovani!!! fail... mas pq?! >>> Corrigindo, a pedido do mago, o código feito em celular: >>> >>> perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' arquivo.txt >>> >>> Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: >>> >>>> 2011/2/22 Marco Lima : >>>>> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >>>>> >>>> >>>> fail >>>> >>>>> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >>>>> >>>>> Me diz aí se pelo menos acertei no green! >>>>> >>>>> Eden: >>>>> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >>>>> keys%z' arquivo.txt >>>>> >>>>> -- >>>>> Eden Cardim Need help with your Catalyst or DBIx::Class project? >>>>> Code Monkey http://www.shadowcat.co.uk/catalyst/ >>>>> Shadowcat Systems Ltd. Want a managed development or deployment platform? >>>>> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >>>>> _______________________________________________ >>>>> 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 >>>>> >>>> >>>> >>>> >>>> -- >>>> "If you?ve never written anything thoughtful, then you?ve never had >>>> any difficult, important, or interesting thoughts. That?s the secret: >>>> people who don?t write, are people who don?t think." >>>> _______________________________________________ >>>> 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 >> >> >> >> -- >> "If you?ve never written anything thoughtful, then you?ve never had >> any difficult, important, or interesting thoughts. That?s the secret: >> people who don?t write, are people who don?t think." >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From edencardim em gmail.com Tue Feb 22 14:56:32 2011 From: edencardim em gmail.com (Eden Cardim) Date: Tue, 22 Feb 2011 19:56:32 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Acesso_aleat=F3rio_=E0_?= =?iso-8859-1?q?arquivos?= In-Reply-To: <9D357098-7831-4C68-BA8A-4D77209A73F3@gmail.com> References: <4d64360b.813ee30a.6ba1.700a@mx.google.com> <9D357098-7831-4C68-BA8A-4D77209A73F3@gmail.com> Message-ID: 2011/2/22 Fernando Corrêa de Oliveira : > estupidez a minha... > > perl -nE '$z{$`}.=$&if/,.*/;END{say"$_=>$z{$_}"for keys%z}' arquivo.txt Aqui saiu assim: joao=>,10,15,10,10,8,9 maria=>,7,9,6,9,4,10 errado, não pode ter vírgula antes dos números e precisa de espaço em volta do => --    Eden Cardim       Need help with your Catalyst or DBIx::Class project?   Code Monkey                    http://www.shadowcat.co.uk/catalyst/  Shadowcat Systems Ltd.  Want a managed development or deployment platform? http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/ From gabriel.vieira em gmail.com Tue Feb 22 14:57:55 2011 From: gabriel.vieira em gmail.com (Gabriel Vieira) Date: Tue, 22 Feb 2011 19:57:55 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Acesso_aleat=F3rio_=E0_?= =?iso-8859-1?q?arquivos?= In-Reply-To: References: <4d64360b.813ee30a.6ba1.700a@mx.google.com> <9D357098-7831-4C68-BA8A-4D77209A73F3@gmail.com> Message-ID: 2011/2/22 Eden Cardim : > 2011/2/22 Fernando Corrêa de Oliveira : >> estupidez a minha... >> >> perl -nE '$z{$`}.=$&if/,.*/;END{say"$_=>$z{$_}"for keys%z}' arquivo.txt > > Aqui saiu assim: > > joao=>,10,15,10,10,8,9 > maria=>,7,9,6,9,4,10 > > errado, não pode ter vírgula antes dos números e precisa de espaço em > volta do => E eu ainda acho que tem que ser como solicitado, com as notas B abaixo das A. > > -- >    Eden Cardim       Need help with your Catalyst or DBIx::Class project? >   Code Monkey                    http://www.shadowcat.co.uk/catalyst/ >  Shadowcat Systems Ltd.  Want a managed development or deployment platform? > http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/ > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Gabriel Vieira From fernandocorrea em gmail.com Tue Feb 22 14:59:17 2011 From: fernandocorrea em gmail.com (=?iso-8859-1?Q?Fernando_Corr=EAa_de_Oliveira?=) Date: Tue, 22 Feb 2011 19:59:17 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Re=3A_Acesso_aleat=F3ri?= =?iso-8859-1?q?o_=E0_arquivos?= In-Reply-To: References: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> Message-ID: <97DDE6CB-7D87-42CD-831D-2B63F2AD57AD@gmail.com> -1 perl -plE'$z{$`}.=$&if/,.*/}for(keys%z){$_="$_=>$z{$_}"' arquivo.txt Em 22/02/2011, às 19:43, Daniel de Oliveira Mantovani escreveu: > Mas mesmo assim, o seu está bem menor do que eu estava pensando. > > 2011/2/22 Daniel de Oliveira Mantovani : >> 2011/2/22 Marco Lima : >>> Mantovani ! Fail eh vc hehehe o problema foi com o autocomplemento do celular! >>> >> >> Eu estava montando o golf com regexp na cabeça, e ia ver isso depois >> que eu terminasse de trabalhar, aí você mandou um golf com regexp :P >> >>> Fernando vc num disse quantas tacadas e se consegui chegar no green! >>> >>> Marco Lima >>> Mobile >>> braun.lima em gmail.com >>> +55 21 76578103 >>> -----Msg original----- >>> De: Fernando Corrêa de Oliveira >>> Enviado: 22/02/2011 19:23:22 >>> Assunto: Re: [Cascavel-pm] RES: Re: Acesso aleatório à arquivos >>> >>> Po mantovani!!! fail... mas pq?! >>> Corrigindo, a pedido do mago, o código feito em celular: >>> >>> perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' arquivo.txt >>> >>> Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: >>> >>>> 2011/2/22 Marco Lima : >>>>> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >>>>> >>>> >>>> fail >>>> >>>>> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >>>>> >>>>> Me diz aí se pelo menos acertei no green! >>>>> >>>>> Eden: >>>>> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >>>>> keys%z' arquivo.txt >>>>> >>>>> -- >>>>> Eden Cardim Need help with your Catalyst or DBIx::Class project? >>>>> Code Monkey http://www.shadowcat.co.uk/catalyst/ >>>>> Shadowcat Systems Ltd. Want a managed development or deployment platform? >>>>> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >>>>> _______________________________________________ >>>>> 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 >>>>> >>>> >>>> >>>> >>>> -- >>>> "If you?ve never written anything thoughtful, then you?ve never had >>>> any difficult, important, or interesting thoughts. That?s the secret: >>>> people who don?t write, are people who don?t think." >>>> _______________________________________________ >>>> 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 >> >> >> >> -- >> "If you?ve never written anything thoughtful, then you?ve never had >> any difficult, important, or interesting thoughts. That?s the secret: >> people who don?t write, are people who don?t think." >> > > > > -- > "If you?ve never written anything thoughtful, then you?ve never had > any difficult, important, or interesting thoughts. That?s the secret: > people who don?t write, are people who don?t think." > _______________________________________________ > 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 From marciodesouzaferreira em gmail.com Tue Feb 22 15:10:41 2011 From: marciodesouzaferreira em gmail.com (Marcio Ferreira) Date: Tue, 22 Feb 2011 20:10:41 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Re=3A_Acesso_aleat=F3ri?= =?iso-8859-1?q?o_=E0_arquivos?= In-Reply-To: <97DDE6CB-7D87-42CD-831D-2B63F2AD57AD@gmail.com> References: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> <97DDE6CB-7D87-42CD-831D-2B63F2AD57AD@gmail.com> Message-ID: -1 perl -plE'$z{$`}.=$&if/,.*/}for(keys%z){$_.="=>$z{$_}"' arquivo.txt :P []s, @_marcioferreira Marcio Ferreira marciodesouzaferreira.blogspot.com "Perl lives as the 'toolbox for Unix' " Em 22 de fevereiro de 2011 19:59, Fernando Corrêa de Oliveira < fernandocorrea em gmail.com> escreveu: > -1 > > perl -plE'$z{$`}.=$&if/,.*/}for(keys%z){$_="$_=>$z{$_}"' arquivo.txt > > > Em 22/02/2011, às 19:43, Daniel de Oliveira Mantovani escreveu: > > > Mas mesmo assim, o seu está bem menor do que eu estava pensando. > > > > 2011/2/22 Daniel de Oliveira Mantovani < > daniel.oliveira.mantovani em gmail.com>: > >> 2011/2/22 Marco Lima : > >>> Mantovani ! Fail eh vc hehehe o problema foi com o autocomplemento do > celular! > >>> > >> > >> Eu estava montando o golf com regexp na cabeça, e ia ver isso depois > >> que eu terminasse de trabalhar, aí você mandou um golf com regexp :P > >> > >>> Fernando vc num disse quantas tacadas e se consegui chegar no green! > >>> > >>> Marco Lima > >>> Mobile > >>> braun.lima em gmail.com > >>> +55 21 76578103 > >>> -----Msg original----- > >>> De: Fernando Corrêa de Oliveira > >>> Enviado: 22/02/2011 19:23:22 > >>> Assunto: Re: [Cascavel-pm] RES: Re: Acesso aleatório à arquivos > >>> > >>> Po mantovani!!! fail... mas pq?! > >>> Corrigindo, a pedido do mago, o código feito em celular: > >>> > >>> perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' > arquivo.txt > >>> > >>> Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: > >>> > >>>> 2011/2/22 Marco Lima : > >>>>> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' > arquivo.txt > >>>>> > >>>> > >>>> fail > >>>> > >>>>> Nao contei e nem testei pq estou no trânsito! Mas da para passar a > idéia . . . Fernando testa e arruma, mas eu quero credito! > >>>>> > >>>>> Me diz aí se pelo menos acertei no green! > >>>>> > >>>>> Eden: > >>>>> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for > >>>>> keys%z' arquivo.txt > >>>>> > >>>>> -- > >>>>> Eden Cardim Need help with your Catalyst or DBIx::Class > project? > >>>>> Code Monkey > http://www.shadowcat.co.uk/catalyst/ > >>>>> Shadowcat Systems Ltd. Want a managed development or deployment > platform? > >>>>> http://blog.edencardim.com/ > http://www.shadowcat.co.uk/servers/ > >>>>> _______________________________________________ > >>>>> 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 > >>>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> "If you?ve never written anything thoughtful, then you?ve never had > >>>> any difficult, important, or interesting thoughts. That?s the secret: > >>>> people who don?t write, are people who don?t think." > >>>> _______________________________________________ > >>>> 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 > >> > >> > >> > >> -- > >> "If you?ve never written anything thoughtful, then you?ve never had > >> any difficult, important, or interesting thoughts. That?s the secret: > >> people who don?t write, are people who don?t think." > >> > > > > > > > > -- > > "If you?ve never written anything thoughtful, then you?ve never had > > any difficult, important, or interesting thoughts. That?s the secret: > > people who don?t write, are people who don?t think." > > _______________________________________________ > > 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 > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From fernandocorrea em gmail.com Tue Feb 22 15:36:06 2011 From: fernandocorrea em gmail.com (Fernando Oliveira) Date: Tue, 22 Feb 2011 20:36:06 -0300 Subject: [Cascavel-pm] =?iso-8859-1?q?RES=3A_Re=3A_Re=3A_Acesso_aleat=F3ri?= =?iso-8859-1?q?o_=E0_arquivos?= In-Reply-To: References: <4d6439f0.dd25e30a.2e2f.0902@mx.google.com> <97DDE6CB-7D87-42CD-831D-2B63F2AD57AD@gmail.com> Message-ID: Em 22/02/2011 20:11, "Marcio Ferreira" escreveu: > > -1 perl -plE'/,.*/;$z{$`}.=$&}for(keys%z){$_.="=>$z{$_}"' arquivo.txt > > :P > > []s, > > @_marcioferreira > Marcio Ferreira > marciodesouzaferreira.blogspot.com > > "Perl lives as the 'toolbox for Unix' " > > > > Em 22 de fevereiro de 2011 19:59, Fernando Corrêa de Oliveira < fernandocorrea em gmail.com> escreveu: > >> -1 >> >> perl -plE'$z{$`}.=$&if/,.*/}for(keys%z){$_="$_=>$z{$_}"' arquivo.txt >> >> >> Em 22/02/2011, às 19:43, Daniel de Oliveira Mantovani escreveu: >> >> > Mas mesmo assim, o seu está bem menor do que eu estava pensando. >> > >> > 2011/2/22 Daniel de Oliveira Mantovani < daniel.oliveira.mantovani em gmail.com>: >> >> 2011/2/22 Marco Lima : >> >>> Mantovani ! Fail eh vc hehehe o problema foi com o autocomplemento do celular! >> >>> >> >> >> >> Eu estava montando o golf com regexp na cabeça, e ia ver isso depois >> >> que eu terminasse de trabalhar, aí você mandou um golf com regexp :P >> >> >> >>> Fernando vc num disse quantas tacadas e se consegui chegar no green! >> >>> >> >>> Marco Lima >> >>> Mobile >> >>> braun.lima em gmail.com >> >>> +55 21 76578103 >> >>> -----Msg original----- >> >>> De: Fernando Corrêa de Oliveira >> >>> Enviado: 22/02/2011 19:23:22 >> >>> Assunto: Re: [Cascavel-pm] RES: Re: Acesso aleatório à arquivos >> >>> >> >>> Po mantovani!!! fail... mas pq?! >> >>> Corrigindo, a pedido do mago, o código feito em celular: >> >>> >> >>> perl -nE 'if(/(\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for keys%z}' arquivo.txt >> >>> >> >>> Em 22/02/2011, às 19:19, Daniel de Oliveira Mantovani escreveu: >> >>> >> >>>> 2011/2/22 Marco Lima : >> >>>>> Perl -nE 'if((/\w+)(\,.*)/){$z{$1}.=$2}END{say"$_=>$z{$_}"for key%z}' arquivo.txt >> >>>>> >> >>>> >> >>>> fail >> >>>> >> >>>>> Nao contei e nem testei pq estou no trânsito! Mas da para passar a idéia . . . Fernando testa e arruma, mas eu quero credito! >> >>>>> >> >>>>> Me diz aí se pelo menos acertei no green! >> >>>>> >> >>>>> Eden: >> >>>>> perl -F, -nalE'push@{$z{shift em F}}, em F}{$"=",";say"$_ => @{$z{$_}}"for >> >>>>> keys%z' arquivo.txt >> >>>>> >> >>>>> -- >> >>>>> Eden Cardim Need help with your Catalyst or DBIx::Class project? >> >>>>> Code Monkey http://www.shadowcat.co.uk/catalyst/ >> >>>>> Shadowcat Systems Ltd. Want a managed development or deployment platform? >> >>>>> http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/ >> >>>>> _______________________________________________ >> >>>>> 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 >> >>>>> >> >>>> >> >>>> >> >>>> >> >>>> -- >> >>>> "If you?ve never written anything thoughtful, then you?ve never had >> >>>> any difficult, important, or interesting thoughts. That?s the secret: >> >>>> people who don?t write, are people who don?t think." >> >>>> _______________________________________________ >> >>>> 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 >> >> >> >> >> >> >> >> -- >> >> "If you?ve never written anything thoughtful, then you?ve never had >> >> any difficult, important, or interesting thoughts. That?s the secret: >> >> people who don?t write, are people who don?t think." >> >> >> > >> > >> > >> > -- >> > "If you?ve never written anything thoughtful, then you?ve never had >> > any difficult, important, or interesting thoughts. That?s the secret: >> > people who don?t write, are people who don?t think." >> > _______________________________________________ >> > 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: