[Rio-pm] Tratamento de dados para CSV

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


perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{say join";",X=>keys%m;say
join";",$_,@{$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"",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/62edf1a4/attachment.html>


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