[SP-pm] Write Binary!

Henrique Rennó henrique.renno em gmail.com
Quinta Abril 26 08:43:15 PDT 2007


Fala Fred!

Existe um programa muito usado aqui no trabalho chamado GrADS. Basicamente
ele é um plotador, um gerador de gráficos. Para ele plotar os gráficos, os
valores a serem trabalhados devem estar em um arquivo no formato binário
(existem outros formatos que ele lê também mas binário é o mais geral).

Os programas que faço para trabalhar com esses dados estão todos em C que
passei dos que estavam em FORTRAN. No FORTRAN deve-se abrir o arquivo
passando parâmetros tipo 'stream' and 'unformatted', sem esses parâmetros
não dá certo. Já em C seria apenas a opção "b" para o fopen. Para escrever
no arquivo, em FORTRAN usa-se o write passando para ele um vetor(M*N) onde N
é o número de elementos da matriz de 2 dimensões com M linhas e N colunas na
ordem linha 1, colunas 1-N, linha2, colunas 1-N, ..., linhaM, colunas 1-N,
etc. Em C não dá certo usando o fscanf ou qualquer outra função que utiliza
formatação, já o fwrite funciona como eu havia descrito antes: fwrite(matriz,
sizeof(float), M*N, fpointer)

Agora estou querendo passar para perl apenas por aprendizado. Tentei o pack
com formatação "B*" como o Luis Motta disse e não funcionou.

Henrique, modo binario significa sem fim de linha definido. Se voce
> quer escrever uma matriz em um arquivo, da print filehandle @matrix,
> se ela for referencia (matrix2d) voce vai ter que iterar pelo menos
> uma vez.
>
> Agora se você precisa de um formato especifico, dai pode alguma
> conversão, dai entra pack ou unpack :). Manda um exemplo do que voce
> esperaria no arquivo.
>
>

-- 
Henrique
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20070426/07ebff71/attachment.html 


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