[Rio-pm] Tratamento de dados para CSV

Stanislaw Pusep creaktive em gmail.com
Sexta Junho 1 09:03:09 PDT 2012


menor ainda ;)

perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{$,=";";say X=>keys%m;say
$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt

ABS()



2012/6/1 Fernando Oliveira <fernandocorrea em gmail.com>

> menor:
>
> perl
> -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=";";say"",keys%l;say$_,@{$c{$_}}[values%l]for
> keys%c' tabela.txt
>
>
> Just another Perl Hacker,
> Fernando (SmokeMachine)
>
>
> Em 1 de junho de 2012 12:56, Fernando Oliveira <fernandocorrea em gmail.com>escreveu:
>
> Menor:
>>
>> perl
>> -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=";";say"",sort{$l{$a}<=>$l{$b}}keys%l;say$_,@{$c{$_}}[0..keys%l]for
>> keys%c' tabela.txt
>>
>>
>>
>>
>> Just another Perl Hacker,
>> Fernando (SmokeMachine)
>>
>>
>> Em 1 de junho de 2012 12:34, Fernando Oliveira <fernandocorrea em gmail.com>escreveu:
>>
>> s/exita/exista/
>>>
>>>
>>>
>>>
>>> Just another Perl Hacker,
>>> Fernando (SmokeMachine)
>>>
>>>
>>> Em 1 de junho de 2012 12:32, Fernando Oliveira <fernandocorrea em gmail.com
>>> > escreveu:
>>>
>>> Assumindo q exita o arquivo: tabela.txt
>>>> contendo:
>>>>
>>>> Manoel;Pedro
>>>> Joao;Pedro
>>>> Pedro;Manoel
>>>>
>>>> GOLF?!
>>>> minha 1a tacada:
>>>>
>>>> perl
>>>> -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say";",join(";",sort{$l{$a}<=>$l{$b}}keys%l);say
>>>> join";",$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt
>>>>
>>>>
>>>> Just another Perl Hacker,
>>>> Fernando (SmokeMachine)
>>>>
>>>>
>>>> Em 1 de junho de 2012 12:00, Stanislaw Pusep <creaktive em gmail.com>escreveu:
>>>>
>>>> @breno, infelizmente, se for um "CSV" gerado por algumas ferramentas de
>>>>> escritório cujo nome não quero citar nessa lista, expressão regular não
>>>>> basta, já dizia o brian d foy:
>>>>> http://www.effectiveperlprogramming.com/blog/1386
>>>>> @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface
>>>>> "user-friendly" para o Text::CSV que, apesar de funcionar muito bem, é
>>>>> bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV,
>>>>> porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV).
>>>>>
>>>>> ABS()
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2012/6/1 breno <breno em rio.pm.org>
>>>>>
>>>>>> 2012/6/1 Manoel Domingues Junior <manoel.domingues.junior em gmail.com>:
>>>>>> > Olá pessoal,
>>>>>> >
>>>>>> > Estou com um dificuldade em encontrar um módulo no cpan que me
>>>>>> ajude a
>>>>>> > fazer a geração de uma matriz...
>>>>>> >
>>>>>> > Eu obtenho os dados de um software no seguinte formato:
>>>>>> > Manoel;Pedro
>>>>>> > João;Pedro
>>>>>> > Pedro;Manoel
>>>>>> > ....
>>>>>> >
>>>>>> > Esses dados eu gostaria de colocar em uma matriz do tipo:
>>>>>> > X; Pedro;Manoel;
>>>>>> > Manoel; 1;;
>>>>>> > João;1;;
>>>>>> > Pedro;;1;
>>>>>> >
>>>>>> > Alguém conhece algum módulo que me permita fazer isso?
>>>>>> >
>>>>>>
>>>>>> Manoel,
>>>>>>
>>>>>> desculpa a pergunta, mas "isso" o quê? Pode ser pq ainda não acordei
>>>>>> direito, mas não entendi o que vc está fazendo...
>>>>>>
>>>>>> Supondo que vc tem uma lista na forma:
>>>>>>
>>>>>> my @linhas = (
>>>>>>    'Manoel;Pedro',
>>>>>>    'João;Pedro',
>>>>>>    'Pedro;Manoel',
>>>>>> );
>>>>>>
>>>>>> você pode gerar uma nova lista fazendo algo como:
>>>>>>
>>>>>> my @nova = ();
>>>>>>
>>>>>> foreach my $linha (@linhas) {
>>>>>>    my @campos = split /\s*;\s*/ => $linha;
>>>>>>
>>>>>>    # modifique @campos como bem entender...
>>>>>>
>>>>>>    push @nova, join ';' => @campos;
>>>>>> }
>>>>>>
>>>>>> é isso?
>>>>>>
>>>>>>
>>>>>> []s
>>>>>>
>>>>>> -b
>>>>>> _______________________________________________
>>>>>> 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/20120601/eba178d7/attachment.html>


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