[SP-pm] Res: Write Binary!

Ricardo Filipo ricardo_filipo em yahoo.com.br
Quinta Abril 26 07:46:03 PDT 2007


Oi, Henrique.
Talvez o que vc precise seja o modulo Storable. Veja:
http://search.cpan.org/~ams/Storable-2.16/Storable.pm

Senão basta escrever os dados binários no arquivo.
Abaixo uma matriz 5x5 com dados zero. Confira:

<code>
for($i=1;$i<5;$i++){for($j=1;$j<5;$j++){$matriz[$i][$j]=0;}}
open (BINARIO, ">arq.bin"); binmode(BINARIO);
for ($i=1;$i<5;$i++){for($j=1;$j<5;$j++){print BINARIO $matriz[$i][$j];}}
</code>

----- Mensagem original ----
De: Henrique Rennó <henrique.renno em gmail.com>
Para: saopaulo-pm em mail.pm.org
Enviadas: Quinta-feira, 26 de Abril de 2007 11:19:05
Assunto: Re: [SP-pm] Write Binary!

Na verdade o que estou querendo fazer é escrever os valores de uma matriz 2D em um arquivo binário como uma seqüência única de valores. Por exemplo, em C, se eu definir uma matriz 2D float usaria o fwrite da seguinte forma: fwrite(matriz, sizeof(float), N, fpointer) onde N é igual a número total de elementos na matriz e fpointer o ponteiro para o arquivo. Não achei em perl uma função para escrever a matriz em um arquivo no modo binário.


On 4/25/07, Eden Cardim <edencardim em gmail.com> wrote:
On 4/25/07, Henrique Rennó <henrique.renno em gmail.com> wrote:
> Como posso escrever um arquivo binário em perl??? Procurei bastante mas não
> achei algo semelhante à opção "b" do fopen em C. Tentei o binmode mas não dá

> certo. Quando o dado é escrito no arquivo (com print ou write) ele fica em
> texto puro mesmo. Tentei usando o sysopen (escrevendo com syswrite) e
> passando a opção O_BINARY mas o resultado é o mesmo.


Acho que não entendi direito, se você está escrevendo texto no
arquivo, você vai obter texto como "resultado", independentemente de
C< binmode > estar ativado no filehandle. As diferenças entre usar C<

binmode > ou não é explicada em C< perldoc -f binmode >.
Porém, suspeito que você está querendo ver como fica a representação
interna dos caracteres em binário... é isso? Se for, use a função C<
pack>: C< perldoc -f pack >.




-- 
Henrique
_______________________________________________
SaoPaulo-pm mailing list
SaoPaulo-pm em pm.org
http://mail.pm.org/mailman/listinfo/saopaulo-pm





__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20070426/3d0f6266/attachment-0001.html 


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