<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type><BASE
href="x-msg://11/">
<META name=GENERATOR content="MSHTML 8.00.6001.18702">
<STYLE></STYLE>
</HEAD>
<BODY
style="WORD-WRAP: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space"
bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>Fernando parabens pelo código.</FONT></DIV>
<DIV><FONT size=2 face=Arial> Perfeito, lindo funcional e inelegivel para
meros humanos :-) tipica daqueles que falam que o perl é um monte de codigo
bizonho.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>mas ficou lindo, Parabens.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Esse codigo vai ficar guardado na minha coleção.
:-)</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV>Ricardo </DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B>
<A title=fernandocorrea@gmail.com
href="mailto:fernandocorrea@gmail.com">Fernando Corrêa de Oliveira</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=cascavel-pm@pm.org
href="mailto:cascavel-pm@pm.org">Cascavel Perl Mongers</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, February 22, 2011 11:07
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Cascavel-pm] Res: Res:
Acesso aleatório à arquivos</DIV>
<DIV><BR></DIV>Não por isso!
<DIV><BR></DIV>
<DIV>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</DIV>
<DIV>
<DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>Em 22/02/2011, às 10:58, Leonardo Gerheim escreveu:</DIV><BR
class=Apple-interchange-newline>
<BLOCKQUOTE type="cite"><SPAN
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"
class=Apple-style-span>
<DIV>
<DIV
style="MARGIN: 0px; FONT-FAMILY: arial, helvetica, sans-serif; FONT-SIZE: 10pt">
<DIV style="MARGIN: 0px">A resposta do Fernando foi muito d+, Show de bola
mesmo.<BR><BR> 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.<BR> A disposição das
notas dever ser a nota A (NEGRITO) em cima na nota B (NORMAL)
assim:<BR><BR>INPUT:<BR><BR>joao,<SPAN
style="FONT-WEIGHT: bold">1</SPAN>,1<BR>joao,<SPAN
style="FONT-WEIGHT: bold">2</SPAN>,1<BR>joao,<SPAN
style="FONT-WEIGHT: bold">1</SPAN>,2<BR>maria,<SPAN
style="FONT-WEIGHT: bold">1</SPAN>,1<BR>maria,<SPAN
style="FONT-WEIGHT: bold">2</SPAN>,1<BR>maria,<SPAN
style="FONT-WEIGHT: bold">1</SPAN>,2<BR><BR></DIV>
<DIV
style="MARGIN: 0px; FONT-FAMILY: arial, helvetica, sans-serif; FONT-SIZE: 10pt">OUTPUT:<BR><BR>joao
=><SPAN class=Apple-converted-space> </SPAN><SPAN
style="FONT-WEIGHT: bold">1</SPAN>,<SPAN
style="FONT-WEIGHT: bold">2</SPAN>,<SPAN
style="FONT-WEIGHT: bold">1</SPAN><BR>
1,1,2<BR><BR>maria =><SPAN
class=Apple-converted-space> </SPAN><SPAN
style="FONT-WEIGHT: bold">1</SPAN>,<SPAN
style="FONT-WEIGHT: bold">2</SPAN>,<SPAN
style="FONT-WEIGHT: bold">1</SPAN><BR>
1,1,2<BR><BR><BR>
Entenderam? Por isso perguntei como faria para avançar e recuar uma
linha.<BR> Vlw pela força até agora.<BR><BR><BR>
<DIV
style="MARGIN: 0px; FONT-FAMILY: 'times new roman', 'new york', times, serif; FONT-SIZE: 12pt"><FONT
size=2 face=Tahoma>
<HR SIZE=1>
<B><SPAN style="FONT-WEIGHT: bold">De:</SPAN></B><SPAN
class=Apple-converted-space> </SPAN>Renato Santos <<A
href="mailto:renato.cron@gmail.com">renato.cron@gmail.com</A>><BR><B><SPAN
style="FONT-WEIGHT: bold">Para:</SPAN></B><SPAN
class=Apple-converted-space> </SPAN>Cascavel Perl Mongers <<A
href="mailto:cascavel-pm@pm.org">cascavel-pm@pm.org</A>><BR><B><SPAN
style="FONT-WEIGHT: bold">Enviadas:</SPAN></B><SPAN
class=Apple-converted-space> </SPAN>Terça-feira, 22 de Fevereiro de
2011 10:40:37<BR><B><SPAN style="FONT-WEIGHT: bold">Assunto:</SPAN></B><SPAN
class=Apple-converted-space> </SPAN>Re: [Cascavel-pm] Res: Acesso
aleatório à arquivos<BR></FONT><BR>Fernando, funcionou!
<BLOCKQUOTE
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0px; MARGIN: 0pt 0pt 0pt 40px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px"
class=webkit-indent-blockquote>
<DIV style="MARGIN: 0px">
<DIV style="MARGIN: 0px">joao => 10, 15, 10, 10, 8, 9</DIV></DIV>
<DIV style="MARGIN: 0px">
<DIV style="MARGIN: 0px">maria => 7, 9, 6, 9, 4,
10</DIV></DIV></BLOCKQUOTE>
<DIV style="MARGIN: 0px">
<DIV style="MARGIN: 0px"><BR></DIV>
<DIV style="MARGIN: 0px"><BR></DIV>
<DIV style="MARGIN: 0px">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
.</DIV>
<DIV style="MARGIN: 0px"><BR></DIV>
<DIV style="MARGIN: 0px">Coragem escrever isso no celular eim! Aja
paciencia!</DIV>
<DIV style="MARGIN: 0px"><BR></DIV>
<DIV style="MARGIN: 0px"><BR></DIV>
<DIV style="MARGIN: 0px">ps: legal o uso do END {}, nunca tinha pensando
nisso.</DIV><BR>
<DIV style="MARGIN: 0px" class=gmail_quote>2011/2/22 Fernando Oliveira<SPAN
class=Apple-converted-space> </SPAN><SPAN dir=ltr><<A
href="mailto:fernandocorrea@gmail.com" rel=nofollow target=_blank
ymailto="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</A>></SPAN><BR>
<BLOCKQUOTE
style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<P>Não é q faltou o for?! Pq ninguem me avisou?!</P>
<DIV><BR class=webkit-block-placeholder></DIV>
<DIV style="MARGIN: 0px" class=im>Em 22/02/2011 10:17, "Fernando Oliveira"
<<A href="mailto:fernandocorrea@gmail.com" rel=nofollow target=_blank
ymailto="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</A>>
escreveu:<BR>><BR></DIV>perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1
.. $#F]; END{print "$_ => ", join ", ", @{ $pessoa{$_} } for keys
%pessoa}' arquivo.txt
<DIV style="MARGIN: 0px">
<DIV style="MARGIN: 0px"></DIV>
<DIV style="MARGIN: 0px" class=h5><BR>><BR>> Codigo escrito no cel e
não testado!<BR>> GOLF?!<BR>><BR>> Em 22/02/2011 09:36, "Leonardo
Gerheim" <<A href="mailto:general_andrade@yahoo.com.br" rel=nofollow
target=_blank
ymailto="mailto:general_andrade@yahoo.com.br">general_andrade@yahoo.com.br</A>>
escreveu:<BR>><BR>> > Agradeço à todos pelas respostas. Mas
realmente não consegui me expressar,<SPAN
class=Apple-converted-space> </SPAN><BR>> > como coloquei um
exemplo não específico ficou realmente complicado o<SPAN
class=Apple-converted-space> </SPAN><BR>> > entendimento. A
minha intenção é a seguinte:<BR>> > Eu quero poder movimentar dentro
do arquivo, ou seja, avançar e recuar uma<SPAN
class=Apple-converted-space> </SPAN><BR>> > uma linha do
arquivo.<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > ex de
INPUT:<BR>> ><SPAN class=Apple-converted-space> </SPAN><BR>>
> joao,10,15<BR>> > joao,10,10<SPAN
class=Apple-converted-space> </SPAN><BR>> > joao,8,9<BR>>
> maria,7,9<BR>> > maria,6,9<BR>> > maria,4,10<BR>>
><SPAN class=Apple-converted-space> </SPAN><BR>> > onde
temos respectivamente o nome do aluno a nota A e a nota B, mas
queremos<SPAN class=Apple-converted-space> </SPAN><BR>> > gerar
um OUTPUT:<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > joao
10,10,8<BR>> > 15,10,9<BR>> > maria 7,6,4<SPAN
class=Apple-converted-space> </SPAN><BR>> > 9,9,10<BR>>
><SPAN class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Ou seja, uma nota
após a outra.<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Para isso, pensei
em ler a primeira linha, imprimir as notas notas uma<SPAN
class=Apple-converted-space> </SPAN><BR>> > embaixo da outra,
logoa após isso teria que retornar à primneira linha para<SPAN
class=Apple-converted-space> </SPAN><BR>> > imprimir o segundo
conjunto de notas, enquanto o nome do aluno for o mesmo. O<SPAN
class=Apple-converted-space> </SPAN><BR>> > que não consegui
fazer é essa parte de movimentar dentro do arquivo, avançando e<SPAN
class=Apple-converted-space> </SPAN><BR>> > recuando em
arquivos que tenham registros de tamanho diferente.<BR>> > Caso
existe um algoritmo mais simples por for me ajudem a montá-lo, mas de<SPAN
class=Apple-converted-space> </SPAN><BR>> > qualquer forma me
expliquei como avançar e recuar linhas.<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Att.<BR>>
><SPAN class=Apple-converted-space> </SPAN><BR>> > P.S: A
solução do Eden na sua última resposta resolveu a última questão, eu
que<SPAN class=Apple-converted-space> </SPAN><BR>> > me
expressei totalmente mal.<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> >
________________________________<BR>> > De: Eden Cardim <<A
href="mailto:edencardim@gmail.com" rel=nofollow target=_blank
ymailto="mailto:edencardim@gmail.com">edencardim@gmail.com</A>><BR>>
> Para: Cascavel Perl Mongers <<A href="mailto:cascavel-pm@pm.org"
rel=nofollow target=_blank
ymailto="mailto:cascavel-pm@pm.org">cascavel-pm@pm.org</A>><BR>>
> Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35<BR>> >
Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> >>>>>>
"Leonardo" == Leonardo Gerheim <<A
href="mailto:general_andrade@yahoo.com.br" rel=nofollow target=_blank
ymailto="mailto:general_andrade@yahoo.com.br">general_andrade@yahoo.com.br</A>>
writes:<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Leonardo> Olá
pessoal, Preciso ler um arquivo e quando em uma<BR>> > Leonardo>
determinada linha contiver um valor, ele pular para a<BR>> >
Leonardo> próxima linha e quando encontrar um segundo valor não<BR>>
> Leonardo> imprimir mais nada, como no exemplo abaixo:<BR>>
><SPAN class=Apple-converted-space> </SPAN><BR>> > Não ficou
claro o que você quer aqui, mostra um exemplo da entrada e da<BR>> >
saída esperada.<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Leonardo> joao-
não imprimir<BR>> > Leonardo> maria- não imprimir<BR>> >
Leonardo> antonio- não imprimir<BR>> > Leonardo> a- não
imprimir<BR>> > Leonardo> linguagem- IMPRIMIR<BR>> >
Leonardo> programacao- IMPRIMIR<BR>> > Leonardo> b- não
imprimir<BR>> > Leonardo> elizabeth- não imprimir<BR>> >
Leonardo> kenia- não imprimir<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Isso é a entrada ou
a saída do programa?<BR>> > grep não resolve?<BR>> > ,----[
cat test_data ]<BR>> > | joao<BR>> > | maria<BR>> > |
antonio<BR>> > | a<BR>> > | linguagem<BR>> > |
programacao<BR>> > | b<BR>> > | elizabeth<BR>> > |
kenia<BR>> > `----<BR>> > ,----[ cat test_data | grep
"linguagem\|programacao" ]<BR>> > | linguagem<BR>> > |
programacao<BR>> > `----<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Leonardo> Eu
consegui fazer um script para isso, entretanto<BR>> > Leonardo>
somente consegui que ele funcione, quando o amanho dos<BR>> >
Leonardo> registros são iguais. Como faço para resolver esse<BR>>
> Leonardo> problema tendo um arquivo com registros de
tamnho<BR>> > Leonardo> diferente?<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > Se você mostrar o
código, com um exemplo da execução, fica mais fácil te<BR>> >
ajudar.<BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> > --<SPAN
class=Apple-converted-space> </SPAN><BR>> > Eden Cardim<BR>>
> Software Engineer<BR>> > +55 73 9986-3963<BR>> ><SPAN
class=Apple-converted-space> </SPAN><A href="http://edencardim.com"
rel=nofollow target=_blank>edencardim.com</A><BR>> >
_______________________________________________<BR>> > Cascavel-pm
mailing list<BR>> ><SPAN class=Apple-converted-space> </SPAN><A
href="mailto:Cascavel-pm@pm.org" rel=nofollow target=_blank
ymailto="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</A><BR>>
><SPAN class=Apple-converted-space> </SPAN><A
href="http://mail.pm.org/mailman/listinfo/cascavel-pm" rel=nofollow
target=_blank>http://mail.pm.org/mailman/listinfo/cascavel-pm</A><BR>>
><SPAN class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR>> ><SPAN
class=Apple-converted-space> </SPAN><BR></DIV></DIV>
<DIV><BR
class=webkit-block-placeholder></DIV><BR>_______________________________________________<BR>Cascavel-pm
mailing list<BR><A href="mailto:Cascavel-pm@pm.org" rel=nofollow
target=_blank
ymailto="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</A><BR><A
href="http://mail.pm.org/mailman/listinfo/cascavel-pm" rel=nofollow
target=_blank>http://mail.pm.org/mailman/listinfo/cascavel-pm</A><BR></BLOCKQUOTE></DIV><BR><BR
clear=all><BR>--<SPAN class=Apple-converted-space> </SPAN><BR>Renato
Santos<BR><A href="http://www.renatocron.com/blog/" rel=nofollow
target=_blank>http://www.renatocron.com/blog/</A><BR></DIV></DIV></DIV></DIV><BR> _______________________________________________<BR>Cascavel-pm
mailing list<BR><A
href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</A><BR><A
href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</A></DIV></SPAN></BLOCKQUOTE></DIV><BR>
<DIV><SPAN
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"
class=Apple-style-span>Just Another Perl Hacker<BR>Fernando Corrêa de
Oliveira<BR><A
href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</A></SPAN>
</DIV><BR></DIV>
<P>
<HR>
<P></P>_______________________________________________<BR>Cascavel-pm mailing
list<BR>Cascavel-pm@pm.org<BR>http://mail.pm.org/mailman/listinfo/cascavel-pm</BLOCKQUOTE></BODY></HTML>