Meu querido, tire o sotaque de C e coloque o sotaque de Perl, então :<br><br>... de :<br><code><br><ol style="font-family: courier new,monospace;"><li class="li2"><div class="de2"><span class="kw1">my</span> <span class="re0">$num</span> = <span class="nu0">0</span>;</div>
</li><li class="li1"><div class="de1"><span class="kw1">for</span> <span class="br0">(</span><span class="kw1">my</span> <span class="re0">$i</span> = <span class="nu0">0</span>; <span class="re0">$i</span> < <span class="nu0">8</span>; <span class="re0">$i</span>++<span class="br0">)</span> <span class="br0">{</span></div>
</li><li class="li2"><div class="de2"> <span class="kw1">if</span> <span class="br0">(</span><span class="re0">$options</span><span class="br0">[</span><span class="re0">$i</span><span class="br0">]</span> eq <span class="st0">"S"</span><span class="br0">)</span> <span class="br0">{</span></div>
</li><li class="li1"><div class="de1"> <span class="re0">$num</span> = set_bit<span class="br0">(</span><span class="re0">$num</span>, <span class="re0">$i</span><span class="br0">)</span>;</div></li><li class="li2">
<div class="de2"> <span class="br0">}</span></div></li><li class="li1"><div class="de1"><span class="br0">}</span></div></li></ol></code><br><br>para ... : <br><code><br><ol style="font-family: courier new,monospace;">
<li class="li1"><div class="de1"><span class="kw1">for</span> <span class="br0">my $i ( 0..7 </span><span class="br0">)</span> <span class="br0">{</span></div></li><li class="li2"><div class="de2"> <span class="kw1">if</span> <span class="br0">(</span><span class="re0">$options</span><span class="br0">[</span><span class="re0">$i</span><span class="br0">]</span> eq <span class="st0">"S"</span><span class="br0">)</span> <span class="br0">{</span></div>
</li><li class="li1"><div class="de1"> <span class="re0">$num</span> = set_bit<span class="br0">(</span><span class="re0">$num</span>, <span class="re0">$i</span><span class="br0">)</span>;</div></li><li class="li2">
<div class="de2"> <span class="br0">}</span></div></li><li class="li1"><div class="de1"><span class="br0">}</span></div></li></ol><br></code><br><br><div class="gmail_quote">2009/7/8 Blabos de Blebe <span dir="ltr"><<a href="mailto:blabos@gmail.com">blabos@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">6000 campos? 200000 campos?<br><br>O que é um campo, nesse contexto? Não conheço o tal do SPSS.<br>
<br>Você usa algum banco de dados, tipo MySQL, Postgres?<br><br>Mas voltando ao assunto?<br><br>Pelo que eu entendi, denovo supondo, você tem algo como:<br>
<br><span style="font-family: courier new,monospace;">----------| Maçã | Laranja | Abacaxi | Banana</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Wesley | Não | Sim | Não | Não</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">Solli | Não | Sim | Sim | Não</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Montovani | Não | Não | Não | Sim</span><br>
<br>E quer transformar em:<br><br><span style="font-family: courier new,monospace;">----------| Frutas |</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Wesley | 4 |</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">Solli | 6 |</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Montovani | 1 |</span><br><br>Neste caso, me veio à cabeça algo assim:<br>
<br><a href="http://pastebin.com/m729e79c7" target="_blank">http://pastebin.com/m729e79c7</a><br><br>Abraços<div><div></div><div class="h5"><br><br>2009/7/8 <<a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a>><br>
><br>> A todos boa noite!<br>
> <br>> Soli,<br>> valeu a intenção, mas assim não rola..<br>> já resolvi isto com & mesmo...<br>> <br>> Estou passando o meu sistema que é em Delphi..mas...<br>> sou novato total em Perl...rsrs...<br>
> <br>> <br>> Respondendo a sua pergunta:<br>> ________________<br>> Um breve histórico:<br>> <br>> Eu trabalho com processamento de pesquisas de mercado. (tabulação)<br>> <br>> No começo trabalhei muito anos com Statiscs SPSS, Statiscs ... (com estes programas as bases ficavam realmente gigantes..rsrs..200.000 campos..rsrs)<br>
> acabei desenvolvendo meu próprio sistema de tabulação.<br>> <br>> Desenvolvi um formato para o meu arquivo de dados,<br>> levando em consideração minhas necessidades, tais como:<br>> <br>> - conteúdo criptografado.<br>
> - tamanho final do arquivo de base.<br>> - quantidade final de campos na base.<br>> - base não normalizada = campos multivalorados e dependentes..<br>> - conteúdo dos campos: numérico.<br>> <br>> levando em consideração que:<br>
> - 80% dos campos de uma pesquisa são campos numéricos e RM (respostas múltiplas=campos multivalorados)<br>> Ex:<br>> Quais frutas vc gosta:<br>> 1 - abacaxi<br>> 2 - Mamão<br>> 3 - abacate.... até o código 50.<br>
> <br>> um fulano responde os códigos 2/3/4/9/10/15<br>> <br>> num buffer(array de boleanos) eu marco true nestas posição e gravo.<br>> <br>> Veja, no SPSS ou em outras bases "normais" eu precisaria de 15 campos para guardar as informações,<br>
> quando que eu guardo num campo só..de tamanho bem pequeno...rsrs..<br>> <br>> (não percebeu meu nome ..rsrs => Binaghi = Binário..rsrs.. aqui só rola um neurônio, que de vez em quando resolve ficar True..rsrs)<br>
> ____________________________________________________<br>> ____________________________________________________<br>> <br>> (é um código totalmente grosso..mas funfa..rsrs)<br>> <br>> É assim que eu faço:<br>
> <br>> Leio o arq:<br>> <br>> open(tap,"<$PathHtdocs");<br>> binmode tap;<br>> my ($buf, $data, $n, @cont);<br>> while (($n = read tap, $data, $x) != 0) {<br>> print "$n bytes read\n";<br>
> $buf .= $data;<br>> }<br>> print "$buf";<br>> close(tap);<br>> @cont=split(//,$buf);<br>> <br>> Comparo o conteúdo:<br>> <br>> push (@byt,1);<br>> push (@byt,2);<br>
> push (@byt,4);<br>> push (@byt,8);<br>> push (@byt,16);<br>> push (@byt,32);<br>> push (@byt,64);<br>> push (@byt,128);<br>> my @res;<br>> my $RecCount=$n*8;<br>> for($a=1;$a<=$RecCount+1;$a++){<br>
> push (@res,0);<br>> }<br>> my $pos=0;<br>> for($a=1;$a<=$n;$a++){<br>> $val=$cont[$a];<br>> print "----> testa valor $a:=$cont[$a]<br>\n"; <br>> if(ord($val)!=0){<br>
> for($k=0;$k<=7;++$k){<br>> $pos=8*($a-1)+$k+1;<br>> $ord=ord($val);<br>> if(ord($val) & $byt[$k]) {<br>> $res[$pos]=1;<br>> $r=ver_conteudo(ord($val),$byt[$k]);<br>
> print "----> res[$pos]:=1 / $r<br>\n";<br>> }<br>> }<br>> }<br>> }<br>> ____________________________________________________<br>> ____________________________________________________<br>
> <br>> Esse formato é para as respostas no formato de códigos,<br>> os textos, destes códigos, ficam guardados em outro arquivo..<br>> Tipo na base normal se guarda no formato literal: Sim, Não..<br>> na minha base quardo 1, 2 e tenho um texo só para sim e não..<br>
> <br>> Sacou...<br>> <br>> <br>> Obrigado pela atenção..<br>> <br>> Abs<br>> <br>> Claudio H.Binaghi<br>> <a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a><br>
> 5511 3288.4840<br>> <br>> <br>> <br>> <br>> <br>><br>> ----- Original Message -----<br>> From: Solli Honorio<br>> To: <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br>
> Sent: Wednesday, July 08, 2009 3:32 PM<br>> Subject: Re: [SP-pm] Problemas numa comparação<br>> Claudio, eu não ví que vc já havia encontrado o teu problema, mas continuo curioso sobre o teu trabalho... mas quero mostra uma outra solução para o teu problema...<br>
><br>> <code><br>> sub ver_conteudo {<br>> return 1 << $_[0] & $_[1] ? 1 : 0;<br>> }<br>><br>> if ( ver_conteudo(1,6) ) {<br>> print "Verdadeiro\n";<br>> } else {<br>
> print "Falso\n";<br>> }<br>> </code><br>><br>> apesar de não ser tão legível (com certeza percisa de uma explicação), é muito mais rápido pois não preciso criar um array.<br>><br>> Solli M. Honório<br>
><br>> 2009/7/8 Solli Honorio <<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>><br>>><br>>> Claudio, eu não o que vc quer cara, não entendi o que vc quis dizer com 'É uma comparação feita como entre Bytes como Boolean.', então vou responder o que eu acho que deveria ser a tradução do teu código:<br>
>><br>>> <code><br>>> sub ver_conteudo {<br>>> my @bits = (1,2,4,8,16,32,64,128);<br>>> return $bits[1] & $_[0] ? 1 : 0;<br>>> }<br>>><br>>> if ( ver_conteudo(8) ) {<br>
>> print "Verdadeiro\n";<br>>> } else {<br>>> print "Falso\n";<br>>> }<br>>> </code><br>>><br>>> Agora fiquei curioso, porque e como vc está traduzindo um programa em Delphi para Perl ? Isto é para uma empresa ?<br>
>><br>>> Abraços,<br>>><br>>> Solli M. Honório<br>>><br>>> 2009/7/8 <<a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a>><br>>>><br>
>>> <br>
>>> Pessoall, Boa tarde!<br>>>> <br>>>> Como sempre, estou precisando de um HELP!!!<br>>>> <br>>>> Estou passando um sistema de Delphi para Perl<br>>>> e não tenho consiguido achar indicação <br>
>>> para desenvolver este trecho do código.<br>>>> <br>>>> É uma comparação feita como entre Bytes como Boolean.<br>>>> ________________________________________________________________<br>
>>> ________________________________________________________________<br>>>> Segue o trecho do código:<br>>>> <br>>>> Procedure Ver_Conteudo;<br>>>> const BITS: array[0..7] of Byte = (1,2,4,8,16,32,64,128);<br>
>>> Res: Boolean;<br>>>> Begin<br>>>> <br>>>> Res := Boolean ( BITS[1] and 6 ); // Este é o trecho que me interessa, este resultado dá true.<br>>>> <br>>>> if (Res) Then ShowMessage('True') else ShowMessage('False');<br>
>>> <br>>>> End;<br>>>> <br>>>> ________________________________________________________________<br>>>> ________________________________________________________________<br>>>> <br>
>>> Qualquer ajuda/ luz, ajuda muito...<br>>>> <br>>>> desde já agradeço a todos.<br>>>> <br>>>> Abs<br>>>> <br>>>> Claudio H.Binaghi<br>>>> <a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a><br>
>>> 5511 3288.4840<br>>>><br>>>> _______________________________________________<br>>>> SaoPaulo-pm mailing list<br>>>> <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
>>> <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>>><br>>><br>>><br>>> --<br>>> "o animal satisfeito dorme". - Guimarães Rosa<br>
><br>><br>><br>> --<br>> "o animal satisfeito dorme". - Guimarães Rosa<br>><br>> ________________________________<br>><br>> _______________________________________________<br>> SaoPaulo-pm mailing list<br>
> <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>> <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>><br>
> _______________________________________________<br>
> SaoPaulo-pm mailing list<br>> <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>> <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
<br>
</div></div><br>_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>"o animal satisfeito dorme". - Guimarães Rosa<br>