[Rio-pm] Mudando de formato

Aureliano Guedes guedes_1000 em hotmail.com
Sábado Março 31 04:41:05 PDT 2012


Desculpa, floodar, mas aqui nesse trecho

 my ( @first, @second );
    foreach my $piece ( @pieces ) {
        my ( $first, $second ) = ( $piece =~ /\d{2}/g );

        push @first, $first;
        push @second, $second;
    }

se eu tenho esse arquivo

Pop
001,    0303 0303 0101 1011 0304
002,    0303 0003 0101 0410 0405
003,    0303 0305 0101 1013 0304
004,    0103 0304 0102 0207 0104
Gra,    0203 0304 0202 0207 0105 

como ele pega de cada linha os valores como esse

 0303 0303 0101 1011 0304

e seleciona que a cada 2 digitos primeiro é do $first e o segundo do $second.

sei que esta exatamente nessa linha

my ( $first, $second ) = ( $piece =~ /\d{2}/g );

a resposta, mas nunca teria pensado que isso era de certa forma automatico.

From: guedes_1000 em hotmail.com
To: rio-pm em pm.org
Date: Sat, 31 Mar 2012 11:34:43 +0000
Subject: Re: [Rio-pm] Mudando de formato







Valeu mesmo, monges.
Blabos, obrigado mesmo, mas na verdade a parte que eu pedi era so a mais dificil, mas 
por que aind atem o topo dos arquivos.

Eu to aqui tentando entender seu codigo, e fazer o meu proprio,
você me explicaria o que quer dizer essa linha:

say join( ' ', map { 0 + $_ } @first );

> From: blabos em gmail.com
> Date: Fri, 30 Mar 2012 14:18:45 -0300
> To: rio-pm em pm.org
> Subject: Re: [Rio-pm] Mudando de formato
> 
> Hum,
> 
> O segundo link foi colado errado. O certo seria:
> 
> http://norvig.com/21-days.html
> 
> 2012/3/30 Nuba Princigalli <nuba em fastmail.fm>:
> > Olá Aureliano,
> >
> > Você também pode levar seu problema quando fizermos o próximo hackathon +
> > code clinic! Agora, tanto num code clinic quanto aqui na lista, a
> > expectativa é que você pelo menos tente quebrar o problema antes, e peça
> > ajuda no que tiveHumr dificuldade.
> >
> > Esse processo de sair duma descrição em linguagem natural de um problema e
> > chegar numa implementação em linguagem de programação, tomando decisões de
> > ferramentas, paradigmas, etc. no caminho, nem sempre é trivial, e obviamente
> > esse "trivial" depende também da sua bagagem. Se está difícil dar o passo
> > largo de uma vez só, tente dar um passo intermediário, por exemplo,
> > escrevendo em pseudo-código, fazendo diagramas, ou qualquer outra técnica
> > que te ajude a organizar o pensamento.
> >
> > Acho os links que o Blabos te indicou bons pontos de partida. Também sugiro
> > ler e dissecar pacientemente a solução que o Blabos te enviou, até você
> > entender o que está acontecendo ali. Perldoc perlfunc são seus amigos, e
> > pode perguntar aqui também.
> >
> > Sucesso na jornada! Precisando de ajuda, estamos aqui! :)
> >
> > Nuba Princigalli
> >
> >
> > On Fri, Mar 30, 2012, at 12:43 PM, Blabos de Blebe wrote:
> >
> > Aureliano, querido amigão, o tio Blabos está de bom humor hoje e vai te
> > ajudar.
> >
> > Pelo que eu sei que você não é da área de informática, e não foi treinado
> > para resolver o que você está tentando resolver, ponto pra você.
> >
> > Mas pelo que eu sinto, você também não está fazendo o dever de casa. É comum
> > que pessoas de outras áreas, ao se deparar com programação, saiam
> > desesperadamente 'caçando' tutoriais sobre 'como programar da noite pro
> > dia'. Esquece, isso não vai acontecer.
> >
> > A sua dúvida não é um problema de linguagem, mas sim de como dar os passos
> > necessários para resolver o problema. Isso leva mais tempo pra aprender, do
> > que descobrir os comandos necessários.
> >
> > Sugiro fortemente que vc leia
> >
> > http://www.modernperlbooks.com/mt/index.html
> >
> > http://www.modernperlbooks.com/mt/index.html
> >
> > http://www.catb.org/~esr/faqs/smart-questions.html
> >
> > ...antes de continuar com qualquer código.
> >
> > Nós estaremos aqui pra te apoiar e te ajudar, mas vc ainda não sabe nem
> > quais são as perguntas. Não adianta a gente dar as respostas.
> >
> >
> > Segue abaixo um naco de código que ilustra mais ou menos como resolver esse
> > problema (deve ter uns erros no meio), de uma forma mais ou menos didática
> > (foco nos passos).
> >
> > Provavelmente os outros monges resolvem isso em menos de 50 caracteres.
> > Golf? :)
> >
> >
> > Não se assuste. Não desista. Mas comece a construir a sua casa pelo
> > alicerce.
> >
> >
> > []'s
> >
> >
> > <code>
> > open my $fh, '<', 'filename' or die 'cannot open file';
> >
> > while ( my $line = <$fh> ) {
> >     chomp $line;
> >     my @pieces = split /\s+/, $line;
> >
> >     say '#' . ( 0 + $pieces[0] );
> >
> >     my ( @first, @second );
> >     foreach my $piece ( @pieces ) {
> >         my ( $first, $second ) = ( $piece =~ /\d{2}/g );
> >
> >         push @first, $first;
> >         push @second, $second;
> >     }
> >
> >     say join( ' ', map { 0 + $_ } @first );
> >     say join( ' ', map { 0 + $_ } @second );
> > }
> > </code>
> >
> >
> >
> > On Friday, March 30, 2012, Aureliano Guedes wrote:
> >
> > Bom dia,
> > Monges.
> >
> > Sem enrolar muito vou ser direto na minha duvida.
> >
> > Tenho dois formatos de arquivo, no qual devo converter do primeiro formato
> > para o segundo,
> > e no BioPerl não encontro nada que me ajude.
> >
> > O primeiro formato, ou melhor, o formato de entrada segue o padrão abaixo:
> >
> > ################################
> > Pop #Aqui indica inicio dos dados
> > 001, xywz abcd ...
> > ... #o padrão se repete ate o final
> > Gra, qwer jkld ... #o ultimo individuo se chama "Gra" sempre
> > #essas letras são numeros e no exemplo ficara mais claro
> > ################################
> >
> > O segundo formato, e no caso formato de saida segue o padrão abaixo:
> >
> > ###############################
> > #1
> > x w a c
> > y z b d
> > ...
> > #x #x é o ultimo numero, que como não sabemos qual é deixei assim
> > q e j l
> > w r k d
> > ##############################
> >
> > Agora facilitarei tudo com um exemplo
> >
> > Formato de entrada, exemplo:
> >
> > #############################
> > Pop
> > 001,    0303 0303 0101 1011 0304
> > 002,    0303 0003 0101 0410 0405
> > 003,    0303 0305 0101 1013 0304
> > 004,    0103 0304 0102 0207 0104
> > Gra,    0203 0304 0202 0207 0105
> > #############################
> >
> > Formato de saida, exemplo:
> >
> > #############################
> > #1
> > 3 3 1 10 3
> > 3 3 1 11 4
> > #2
> > 3 0 1 4 4
> > 3 3 1 10 5
> > #3
> > 3 3 1 10 3
> > 3 5 1 13 4
> > #4
> > 1 3 1 2 1
> > 3 4 2 7 4
> > #5
> > 2 3 2 2 1
> > 3 4 2 7 5
> > ##############################
> >
> > Observem duas coisas:
> >
> > - No primeiro formato os valores estão lado a lado, e de uma coordenada para
> > outra
> > temos um espaço, as unidades sempre são 2 numeros. No segundo formato os
> > valores estão um em baixo do outro, logo se
> > temo no primeiro formato
> > #############################
> > 001,    1213 2720
> > #############################
> > vai sair
> > #############################
> > #1
> > 12 27
> > 13 20
> > #############################
> >
> > - Caso tenha um 0 na frente, o formato de saida elimina ele
> > #############################
> > 001,     0103 0202
> > [/PHP]
> > #############################
> > #1
> > 1 2
> > 3 2
> > #############################
> >
> >
> > Bem gente, toda ajuda possivel será muito bem vinda.
> >
> > Desde já, grato.
> >
> > Att,
> > Aureliano Guedes
> >
> > _______________________________________________
> > Rio-pm mailing list
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> >
> >
> > --
> > Nuba R. Princigalli nuba em pauleira.com http://pauleira.com @nprincigalli
> > Discipline is not an end in itself, just a means to an end. - King Crimson
> >
> > _______________________________________________
> > Rio-pm mailing list
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
 		 	   		  

_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120331/b1ab3980/attachment.html>


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