<div class="gmail_quote">2009/7/8  <span dir="ltr">&lt;<a href="mailto:claudio@dpreferencial.com.br">claudio@dpreferencial.com.br</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">







<div bgcolor="#ffffff">
<div><font face="Arial" size="2">A todos boa noite!</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Soli, </font></div>
<div><font face="Arial" size="2">valeu a intenção, mas assim não rola.. 
</font></div>
<div><font face="Arial" size="2">já resolvi isto com &amp; mesmo...</font></div>
<div><font face="Arial" size="2"></font></div></div></blockquote><div><br><span style="font-family: courier new,monospace;">Sim, e foi exatamente o que eu fiz... a primeira alternativa foi uma tradução do teu código perl, e a segunda opção estou utilizando operador de bitwise para saber se o existe bit ativo na posição que você deseja.</span><br style="font-family: courier new,monospace;">

 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div bgcolor="#ffffff"><div> </div>
<div><font face="Arial" size="2">Estou passando o meu sistema que é em 
Delphi..mas...</font></div>
<div><font face="Arial" size="2">sou novato total em Perl...rsrs...</font></div>
<div><font face="Arial" size="2"></font><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Respondendo a sua pergunta:</font></div>
<div><font face="Arial" size="2">________________</font></div>
<div><font face="Arial" size="2">Um breve histórico:</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Eu trabalho com processamento de pesquisas de 
mercado. (tabulação)</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">No começo trabalhei muito anos com Statiscs SPSS, 
Statiscs ... (com estes programas as bases ficavam realmente 
gigantes..rsrs..200.000 campos..rsrs)</font></div>
<div><font face="Arial" size="2">acabei desenvolvendo meu próprio sistema de 
tabulação.</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Desenvolvi um formato para o meu arquivo de 
dados, </font></div>
<div><font face="Arial" size="2">levando em consideração minhas necessidades, tais 
como:</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">- conteúdo criptografado.</font></div>
<div><font face="Arial" size="2">- tamanho final do arquivo de base.</font></div>
<div><font face="Arial" size="2">- quantidade final de campos na base.</font></div>
<div><font face="Arial" size="2">- base não normalizada = campos multivalorados 
e dependentes..</font></div>
<div><font face="Arial" size="2">- conteúdo dos campos: numérico.</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">levando em consideração que:</font></div>
<div><font face="Arial" size="2">- 80% dos campos de uma pesquisa são campos 
numéricos e RM (respostas múltiplas=campos multivalorados) </font></div>
<div><font face="Arial" size="2">  Ex: </font></div>
<div><font face="Arial" size="2">  Quais frutas vc gosta:</font></div>
<div><font face="Arial" size="2">  1 - abacaxi</font></div>
<div><font face="Arial" size="2">  2 - Mamão</font></div>
<div><font face="Arial" size="2">  3 - abacate....  até o código 
50.</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">  um fulano responde os códigos 
2/3/4/9/10/15</font></div></div></blockquote><div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div bgcolor="#ffffff"><div><font face="Arial" size="2"></font></div>


<div><font face="Arial" size="2">   </font></div>
<div><font face="Arial" size="2">  num buffer(array de boleanos) eu marco true 
nestas posição e gravo.</font></div></div></blockquote><div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div bgcolor="#ffffff"><div>

<font face="Arial" size="2"></font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Veja, no SPSS ou em outras bases 
&quot;normais&quot; eu precisaria de 15 campos </font><font face="Arial" size="2">para 
guardar as informações, </font></div>
<div><font face="Arial" size="2">quando que eu guardo num campo só..de tamanho bem 
pequeno...rsrs..</font></div>
<div><font face="Arial" size="2"></font></div></div></blockquote><div><br><span style="font-family: courier new,monospace;">... e vc está
utilizando um inteiro para representar as múltiplas opções ativadas ?
tipo se o cara optar pelos códigos acima temos o valor  34332 ! e aí vc
armazena este valor no teu sistema ? Este sistema é bem eficiente, mas
tem o limite de 32 bits numa kernel 32bits.</span><br style="font-family: courier new,monospace;"> 
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div bgcolor="#ffffff"><div> </div>
<div><font face="Arial" size="2">(não percebeu meu nome ..rsrs =&gt; 
 </font><font face="Arial" size="2">Binaghi = Binário..rsrs.. aqui só rola 
um neurônio, que de vez em quando resolve ficar True..rsrs)</font></div>
<div><font face="Arial" size="2"><font face="Arial" size="2">____________________________________________________</font></font></div>
<div>
<div>
<div><font face="Arial" size="2">____________________________________________________</font></div></div></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">(é um código totalmente grosso..mas 
funfa..rsrs)</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">É assim que eu faço: </font></div>
<div><font face="Arial" size="2"></font><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Leio o arq:</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">  open(tap,&quot;&lt;$PathHtdocs&quot;);<br>  
binmode tap;</font></div>
<div><font face="Arial" size="2">      my ($buf, $data, $n, 
@cont);<br>      while (($n = read tap, $data, $x) != 
0) {<br>          print &quot;$n bytes 
read\n&quot;;<br>         $buf .= 
$data;<br>      
}<br>       print &quot;$buf&quot;;<br>  
close(tap);</font> <br></div></div></blockquote><div><br><span style="font-family: courier new,monospace;">deixa eu entender uma coisa no código assim, vc está lendo um arquivo inteiro e colocando o conteúdo na variável $buf ? Se for isto, sem querer ofender, realmente o código está bem baby Perl, e existe maneira mais interessante de fazer isto : </span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;"><br>&lt;code&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">my $data = do {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  local $/ = undef;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  open my $file, &#39;&lt;&#39;, $path_htdocs or die &quot;Erro : $!\n&quot;;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  &lt;$file&gt;;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">&lt;/code&gt;</span><br style="font-family: courier new,monospace;"><br><span style="font-family: courier new,monospace;">... mas informação sobre esta técnica chamada de Slurp você encontra no link <a href="http://www.perl.com/pub/a/2003/11/21/slurp.html">http://www.perl.com/pub/a/2003/11/21/slurp.html</a> ... só temos que tomar cuidado com arquivos muito grande, pois vai tudo para a memória.</span><br>

<br><span style="font-family: courier new,monospace;">Eu tentei ler o resto do programa para estruturar de uma maneira mais eficiente e com cara de Perl, mas desisti porquê esta muito confuso na minha opinião.<br><br>O Frederico fez algumas alterações importantes, mas pra mim o código continuou confuso pra mim, e é algo que vc poderia considerar, visto que código de difícil leitura normalmente significa código ineficiente.<br>

<br>Aproveite a oportunidade e interesse da lista em discutir o assunto para melhorar o teu código, apesar de estar funcionando, pode funcionar melhor.<br><br>Solli M. Honório <br style="font-family: courier new,monospace;">

</span><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div bgcolor="#ffffff"><div><font face="Arial" size="2"><br> @cont=split(//,$buf);</font></div>


<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Comparo o conteúdo:</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">  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&lt;=$RecCount+1;$a++){<br>       push 
(@res,0);<br>  }<br>  my $pos=0;<br></font><font face="Arial" size="2">  for($a=1;$a&lt;=$n;$a++){<br>    
$val=$cont[$a];<br>print &quot;----&gt; testa valor 
$a:=$cont[$a]&lt;br&gt;\n&quot;;                
<br>    if(ord($val)!=0){<br>      
for($k=0;$k&lt;=7;++$k){<br>          
$pos=8*($a-1)+$k+1;<br>          
$ord=ord($val);<br>          
if(ord($val) &amp; $byt[$k]) 
{<br>            
$res[$pos]=1;<br>            
$r=ver_conteudo(ord($val),$byt[$k]);<br>print &quot;----&gt; res[$pos]:=1 / 
$r&lt;br&gt;\n&quot;;<br>          
}<br>      }<br>    }<br>  
}<br></font></div>
<div><font face="Arial" size="2">
<div><font face="Arial" size="2">____________________________________________________</font></div></font></div>
<div><font face="Arial" size="2">____________________________________________________</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Esse formato é para as respostas no formato de 
códigos,</font></div>
<div><font face="Arial" size="2">os textos, destes códigos, ficam guardados em outro 
arquivo..</font></div>
<div><font face="Arial" size="2">Tipo na base normal se guarda no formato literal: 
Sim, Não.. </font></div>
<div><font face="Arial" size="2">na minha base quardo 1, 2 e tenho um texo só para 
sim e não..</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Sacou...</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Obrigado pela atenção..</font></div><div class="im">
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Abs</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Claudio H.Binaghi<br><a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a><br>5511 
3288.4840<br></font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"></font> </div>
</div><blockquote style="border-left: 2px solid rgb(0, 0, 0); padding-right: 0px; padding-left: 5px; margin-left: 5px; margin-right: 0px;"><div class="im">
  <div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">----- Original Message ----- </div>
  <div style="background: rgb(228, 228, 228) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">

<b>From:</b> 
  <a title="shonorio@gmail.com" href="mailto:shonorio@gmail.com" target="_blank">Solli Honorio</a> 
  </div>
  <div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>To:</b> <a title="saopaulo-pm@mail.pm.org" href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a> </div>


  </div><div class="im"><div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Sent:</b> Wednesday, July 08, 2009 3:32 
  PM</div>
  <div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Subject:</b> Re: [SP-pm] Problemas numa 
  comparação</div>
  <div><font face="Arial" size="2"></font><font face="Arial" size="2"></font><font face="Arial" size="2"></font><br></div></div><div><div></div><div class="h5">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><span style="font-family: courier new,monospace;">&lt;code&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">sub ver_conteudo {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  return 1 &lt;&lt; $_[0] 
  &amp; $_[1] ? 1 : 0;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">if ( ver_conteudo(1,6) ) 
  {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  print 
  &quot;Verdadeiro\n&quot;;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">} else {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  print &quot;Falso\n&quot;;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&lt;/code&gt;</span><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 style="font-family: courier new,monospace;"><br>
  <div class="gmail_quote">2009/7/8 Solli Honorio <span dir="ltr">&lt;<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>&gt;</span><br>
  <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Claudio, 
    eu não o que vc quer cara, não entendi o que vc quis dizer com &#39;<font face="Arial" size="2">É uma comparação feita como entre Bytes como 
    Boolean.&#39;</font>, então vou responder o que eu acho que deveria ser a 
    tradução do teu código:<br><br><span style="font-family: courier new,monospace;">&lt;code&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">sub ver_conteudo {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  my @bits = 
    (1,2,4,8,16,32,64,128);</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  return $bits[1] &amp; 
    $_[0] ? 1 : 0;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">if ( ver_conteudo(8) ) {</span>
    <div><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  print 
    &quot;Verdadeiro\n&quot;;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">} else {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  print &quot;Falso\n&quot;;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;"></div><span style="font-family: courier new,monospace;">&lt;/code&gt;</span><br style="font-family: courier new,monospace;">

<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>
    <div class="gmail_quote">
    <div>2009/7/8 <span dir="ltr">&lt;<a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a>&gt;</span><br></div>
    <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
      <div bgcolor="#ffffff">
      <div><font face="Arial" size="2"></font> </div>
      <div>
      <div></div>
      <div>
      <div><font face="Arial" size="2">Pessoall, Boa tarde!</font></div>
      <div><font face="Arial" size="2"></font> </div>
      <div><font face="Arial" size="2">Como sempre, estou precisando de um 
      HELP!!!</font></div>
      <div><font face="Arial" size="2"></font> </div>
      <div><font face="Arial" size="2">Estou passando um sistema de Delphi para Perl 
      </font></div>
      <div><font face="Arial" size="2">e </font><font face="Arial" size="2">não tenho 
      consiguido achar indicação  </font></div>
      <div><font face="Arial" size="2">para desenvolver este trecho do 
      código.</font></div>
      <div><font face="Arial" size="2"></font> </div>
      <div><font face="Arial" size="2">É uma comparação feita como entre Bytes como 
      Boolean.</font></div>
      <div><font face="Arial" size="2">________________________________________________________________</font></div>
      <div><font face="Arial" size="2">________________________________________________________________</font></div>
      <div><font face="Arial" size="2">Segue o trecho do código:</font></div>
      <div><font face="Arial" size="2"></font> </div>
      <div><font face="Arial" size="2">Procedure Ver_Conteudo;</font></div>
      <div><font face="Arial" size="2">   const BITS: array[0..7] of Byte 
      = (1,2,4,8,16,32,64,128);</font></div>
      <div><font face="Arial" size="2">   Res:   
      Boolean;</font></div>
      <div><font face="Arial" size="2">Begin</font></div>
      <div><font face="Arial" size="2">    </font></div>
      <div><font face="Arial" size="2">  Res := Boolean ( BITS[1] and 6 
      );    // Este é o trecho que me interessa,  este 
      resultado dá true.</font></div>
      <div><font face="Arial" size="2"></font> </div>
      <div><font face="Arial" size="2">  if (Res) Then ShowMessage(&#39;True&#39;) else 
      ShowMessage(&#39;False&#39;);</font></div>
      <div><font face="Arial" size="2"></font> </div>
      <div><font face="Arial" size="2">End;</font></div>
      <div><font face="Arial" size="2"></font> </div>
      <div><font face="Arial" size="2">
      <div><font face="Arial" size="2">________________________________________________________________</font></div>
      <div><font face="Arial" size="2">________________________________________________________________</font></div>
      <div> </div>
      <div>Qualquer ajuda/ luz, ajuda muito...</div>
      <div> </div>
      <div>desde já agradeço a todos.</div>
      <div> </div>
      <div>Abs</div>
      <div> </div>
      <div>Claudio H.Binaghi<br><a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a><br>5511 
      3288.4840<br></div></font></div></div></div></div><br>
      <div>_______________________________________________<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>

</div></blockquote></div><font color="#888888"><br><br clear="all"><br>-- <br>&quot;o animal satisfeito dorme&quot;. - 
    Guimarães Rosa<br></font></blockquote></div><br><br clear="all"><br>-- <br>&quot;o 
  animal satisfeito dorme&quot;. - Guimarães Rosa<br>
  </div></div><p>
  </p><hr><div class="im">

  <p></p>_______________________________________________<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></div></blockquote>

</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>&quot;o animal satisfeito dorme&quot;. - Guimarães Rosa<br>