[Rio-pm] Mudando de formato

Blabos de Blebe blabos em gmail.com
Sexta Março 30 08:43:38 PDT 2012


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
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120330/21852d14/attachment-0001.html>


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