[SP-pm] Dúvidas sobre a Representação de Dados [Was: Do Delphi para Perl - Array ...]
claudio at dpreferencial.com.br
claudio at dpreferencial.com.br
Sat Jul 11 07:24:44 PDT 2009
Luiz, Bom dia!
Desculpe a demora no retorno.
Vou responder as msg na ordem de chegada..
_____________________
Veja fiz um exemplo deste processo.. achei + fácil de explicar..
Arq Html com result do teste:
http://189.19.221.210/LendRec/LendoRec.html
Arq PL:
http://189.19.221.210/LendRec/LendoRec.pl
Arq. .DEF
http://189.19.221.210/LendRec/2009.def
Arq .V1
http://189.19.221.210/LendRec/2009.v1
______________________
Na verdade o conteúdo dos campos (no exemplo abaixo) ficam assim: >
2,1/5/8,2,1/2/3,5292.32 a visgula é o separador de campo e a barra é o
separador de conteúdo.
A == "2" (tamanho 2 bits) campo de código
B == "1,5,8" (tamanho 10 bits) campo de código
C == "1,2,3" (tamanho 5 bits) campo de código
D == "3" (tamanho 3 bits) campo de código
E == "5292.32" (tamanho 48 bits) -- campo real48
------------------------
tamanho total 68 bit's.
os campos de código podem ter todos os seus bit's true, exemplo campo B tem
tamanho 10, pode ter um conteúdo assim: 1/2/3/4/5/6/7/8/9/10..
______________________
2º- Quanto ao bit/byte..
troquei bit por byte...rsrs..
______________________
3º
Para as comparações entre bytes eu uso bitwise ShifLeft
______________________
Obs: Só me explicando...
Antes de carregar o arquivo de dados .. (acima)
carrego um arquivo de definição que contem dois arrays.. um com o tipo de
cada campo e outro com o tamanho dos campos.
Com isso vezes 8, tenho o tamanho total (em Bytes) da record a ser lida,
faço um array com as posições iniciais de cada campo e saiu tranformando o
array em códigos ou números...
_______________________
vamos nos falando,
Abs
----- Original Message -----
From: "Luis Motta Campos" <luismottacampos at yahoo.co.uk>
To: <saopaulo-pm at mail.pm.org>
Sent: Friday, July 10, 2009 9:16 PM
Subject: [SP-pm] Dúvidas sobre a Representação de Dados [Was: Do Delphi para
Perl - Array ...]
Claudio wrote:
> É na verdade simplificaria , mas ...
> ___________________________________________
>
> Esqueci de comentar ..meus campos tem dois fomatos básicos.
> 1 - é o código que pod ir de 1...99999. o usuário defini.
> 2 - é numérico: Real, Int e word..
> estes quatro tipos eu transformo no array boolean...
> ___________________________________________
>
> Veja um comparativo:
>
> uma única record com 05 campos, sendo:
> 1 - campoA Boolean 02 códigos - tamanho 02 byts
> 2 - campoB Boolean 10 códigos - tamanho 10 byts
> 3 - campoC Boolean 05 códigos - tamanho 05 byts
> 4 - campoD Boolean 03 códigos - tamanho 03 byts
> 5 - campoE Real -- - tamanho 48 byts
> ------------------------
> tamanho total 68 byts..
>
> Conteudo da record.
> A,B,C,D,E
> 2,1/5/8,2,1/2/3,5292.32
>
> Veja: tamanho do arquivo ficou em:
> - no meu formato 9 bytes.
> - no txt 23 bytes. 2,1/5/8,2,1/2/3,5292.32
> - no txt 68
> bytes.
> 01100010010001000111101100011001010000111010111100010100011010100100
>
> vamos nos falando,
Cláudio,
Eu li e reli o seu email diversas vezes, mas não consegui compreender
como os dados apresentados (que eu reproduzo abaixo) podem se encaixar
nos tamanhos de campos que você tem.
A == "2,1" (tamanho 2 bits)
B == "5" (tamanho 10 bits) --- para baixo ficou Errado
C == "8,2,1" (tamanho 5 bits) -- o corrreto ~e
D == "2" (tamanho 3 bits)
E == "3,5292.32" (tamanho 48 bits)
Eu honestamente não sei como interpretar o campo "E", por exemplo:
aquilo é supostamente um número, ou é uma lista que contém um inteiro e
um número de ponto flutuante sem sinal no padrão IEEE 754?
Também não fica claro, a partir dos seus exemplos de formato, se você
usa a convenção /little endian/ ou /big endian/ para os seus dados em
formato binário.
Finalmente, não consigo compreender como é que tanto o número de ponto
flutuante "2.1" ou a lista de inteiros "2, 1" pode caber em apenas 2
bits. Ou eu estou errado, "byt" era para ser "byte" (8 bits) e o campo
"E" tem o tamanho incorreto?
Agradeço com antecedência pelas explicações.
Putamplexos.
--
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.
_______________________________________________
SaoPaulo-pm mailing list
SaoPaulo-pm at pm.org
http://mail.pm.org/mailman/listinfo/saopaulo-pm
More information about the SaoPaulo-pm
mailing list