<div class="gmail_quote">2009/7/8 <span dir="ltr"><<a href="mailto:claudio@dpreferencial.com.br">claudio@dpreferencial.com.br</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;">
<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 & 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
"normais" 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 =>
</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,"<$PathHtdocs");<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 "$n bytes
read\n";<br> $buf .=
$data;<br>
}<br> print "$buf";<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><code></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, '<', $path_htdocs or die "Erro : $!\n";</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> <$file>;</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;"></code></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<=$RecCount+1;$a++){<br> push
(@res,0);<br> }<br> my $pos=0;<br></font><font face="Arial" size="2"> 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></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;"><code></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 << $_[0]
& $_[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
"Verdadeiro\n";</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 "Falso\n";</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;"></code></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"><<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@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;">Claudio,
eu não o que vc quer cara, não entendi o que vc quis dizer com '<font face="Arial" size="2">É uma comparação feita como entre Bytes como
Boolean.'</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;"><code></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] &
$_[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
"Verdadeiro\n";</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 "Falso\n";</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;"></code></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"><<a href="mailto:claudio@dpreferencial.com.br" target="_blank">claudio@dpreferencial.com.br</a>></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('True') else
ShowMessage('False');</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>"o animal satisfeito dorme". -
Guimarães Rosa<br></font></blockquote></div><br><br clear="all"><br>-- <br>"o
animal satisfeito dorme". - 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>"o animal satisfeito dorme". - Guimarães Rosa<br>