[SP-pm] Substituicoes com verificacao

Gabriel Vieira gabriel.vieira em gmail.com
Quinta Março 2 10:15:13 PST 2006


frase de exemplo:

Em 2002, o Brasil ganhou a copa com 2 gols apos 9980 rezas! :)


abraços
----- Original Message ----- 
From: "Luis Motta Campos" <monsieur_champs em yahoo.com.br>
To: <saopaulo-pm em mail.pm.org>
Sent: Thursday, March 02, 2006 3:01 PM
Subject: Re: [SP-pm] Substituicoes com verificacao


   Pode usar minha expressão regular, acrescentando um /g.
   Mude o conceito de "linha" para o arquivo todo, setando $/=undef.
   Estabeleça um loop que use o meu while, mas, ao invés de ler do
arquivo, leia da expressão regular.
   Use uma sub para calcular a substituição e retornar o valor correto
(ou o mesmo valor, dependendo do que o sujeito responder ao prompt).
   Entendeu?
   Daqui uns 20 minutos, quando eu terminar por aqui, vou tentar
implementar.

   Alguém pode por favor me enviar um conjunto de dados de exemplo?
   Putamplexos!


Gabriel Vieira wrote:
> Bom.. ele quer q cada 4 digitos seja feita a verificação, para cada 1 e 
> nao
> para todos de uma so vez.. podendo haver varias sequencias de 4 digitos em
> uma unica linha....
>
> o seu codigo le linha por linha e so pega a 1a sequencia.
>
> se tento implementar acabo caindo no meu codigo :T
>
> devo estar errando... mas realmente nao consegui.
>
> Abraços
> ----- Original Message ----- 
> From: "Luis Motta Campos" <monsieur_champs em yahoo.com.br>
> To: <saopaulo-pm em mail.pm.org>
> Sent: Thursday, March 02, 2006 2:46 PM
> Subject: Re: [SP-pm] Substituicoes com verificacao
>
>
>
>    Como não? Eu perdi algum detalhe? Não basta fazer o meu código 
> funcionar?
>
> Gabriel Vieira wrote:
>
>>eu tentei... mas proq ele pediu nao consegui implementar :T
>>
>>perdoe-me ;~~~
>>
>>----- Original Message ----- 
>>From: "Luis Motta Campos" <monsieur_champs em yahoo.com.br>
>>To: <saopaulo-pm em mail.pm.org>
>>Sent: Thursday, March 02, 2006 1:42 PM
>>Subject: Re: [SP-pm] Substituicoes com verificacao
>>
>>
>>   Para de repetir o que eu digo, Gabriel... e implementa o que falta.
>>   Putamplexos atarefados!
>>
>>Gabriel Vieira wrote:
>>
>>
>>>Bom.. de acordo com o oq ele pediu.. o codigo nao ajuda.. a ideia ta ai
>>>sim.. e mto + limpa doq a q eu propus.. mas falta umas implementações :D
>>>hehe
>>>
>>>----- Original Message ----- 
>>>From: "Luis Motta Campos" <monsieur_champs em yahoo.com.br>
>>>To: <saopaulo-pm em mail.pm.org>
>>>Sent: Thursday, March 02, 2006 1:07 PM
>>>Subject: Re: [SP-pm] Substituicoes com verificacao
>>>
>>>
>>>  Ah! Otimo! Alguem que pode rodar codigo!
>>>  Testa, e manda o patch. A ideia basica estah aih.
>>>
>>>Gabriel Vieira wrote:
>>>
>>>
>>>
>>>>Não funcionou =x
>>>>hehe
>>>>
>>>>----- Original Message ----- 
>>>>From: "Luis Motta Campos" <monsieur_champs em yahoo.com.br>
>>>>To: <saopaulo-pm em mail.pm.org>
>>>>Sent: Thursday, March 02, 2006 12:20 PM
>>>>Subject: Re: [SP-pm] Substituicoes com verificacao
>>>>
>>>>
>>>> Nossa, que complicado!
>>>> Basta assim:
>>>>
>>>> while( <FILE> ){
>>>>   if( m/.{1,10}(\d+).{1,10}/ ){
>>>>     print "Substituir (...)$`$&$'(...) por (...)$`<data>$&</data>$'?";
>>>>     $answer = <>;
>>>>     s/(\d+)/<data>\1</data>/ if $answer eq 's';
>>>>   } # if
>>>> } # while
>>>>
>>>>
>>>> Mas isso eh LENTO.
>>>>
>>>>Gabriel Vieira wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>IIIIIIIIIIIIIIIIIIniciadoooo o Perl Golf!!!!!
>>>>>
>>>>>Gabriel já dispara comum programa bem configurável!!!!
>>>>>
>>>>>Valerá quem fizer o menor código com configurações iguais à disposta no
>>>>>código a seguir e (codigo opcional) o menor codigo sem as
>>>>>configuracoes!!!
>>>>>
>>>>>--------8<--------
>>>>># frase a ser trabalhada
>>>>>my $frase = "Em 2002, o Brasil ganhou a copa com 2 gols apos 9980 
>>>>>rezas!
>>>>>:)";
>>>>># quantidade de digitos do conjunto a ser trabalho
>>>>>my $dig = 4;
>>>>># mínimo de caracteres antes e depois
>>>>>my $aed = 10;
>>>>># tags para 'cobrir' os digitos solicitados
>>>>>my %c = (a => "<data>",f => "</data>");
>>>>>
>>>>>$frase =~ s/(\d{$dig})/&x($1)/eg;
>>>>>print $frase;
>>>>>
>>>>>sub x{
>>>>>my $z = $_[0];
>>>>>my $x = pos $frase;
>>>>>my $w = $aed;
>>>>>my $y = $x - $w;
>>>>>$y = 0, $w = $x if $y < 0;
>>>>>my $a = substr($frase,$y,$w);
>>>>>my $b = substr($frase,$x+$dig,$aed);
>>>>>print $a.$z.$b." => ".$a.$c{a}.$z.$c{f}.$b;
>>>>>print "\nSubstituir? (s/n) ";
>>>>>chomp(my $j = <STDIN>);
>>>>>$j =~ /^s$/i?$c{a}.$z.$c{f}:$z;
>>>>>}
>>>>>--------8<---------
>>>>
>>>>
>>>>
>>
>
>


-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Motta Campos is Software Engineer, Oracle OCP/DBA, Un*x
  Sysadmin, Member of {Lisbon,São Paulo,Cascavel,Brasil,London}
  Perl Mongers and Perl Fanatic Evangelist
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


_______________________________________________________
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
http://br.acesso.yahoo.com
_______________________________________________
SaoPaulo-pm mailing list
SaoPaulo-pm em pm.org
http://mail.pm.org/mailman/listinfo/saopaulo-pm 



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