/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
BCD
Fra : Roald Henriksen


Dato : 12-05-02 23:26

Hej.
Hvem ved, hvordan man konverterer et tal repræsenteret som 10 bytes BCD til
noget, som D4 kan arbejde med?
Jeg mener at kunne huske, at TP3 havde et talformat som 10 bytes BCD, men
jeg har ikke håndbogen, så jeg kan slå det op.
Helt præcist skal en regnskabsdatabase (Albatros) forsynes med en
windows-baseret rapportgenerator.
Lidt at arbejde med for de nysgerrige,
hvad står her?:
0000: 42 00 00 00 00 00 00 00 35 18 (hexdump fra transaktionsfil)

Mvh RH




 
 
Hans Milling (13-05-2002)
Kommentar
Fra : Hans Milling


Dato : 13-05-02 14:19

"Roald Henriksen" <mail@pentagon-electric.dk> wrote in message news:<fYBD8.111$w_1.3963@news.get2net.dk>...
> Hej.
> Hvem ved, hvordan man konverterer et tal repræsenteret som 10 bytes BCD til
> noget, som D4 kan arbejde med?
> Jeg mener at kunne huske, at TP3 havde et talformat som 10 bytes BCD, men
> jeg har ikke håndbogen, så jeg kan slå det op.
> Helt præcist skal en regnskabsdatabase (Albatros) forsynes med en
> windows-baseret rapportgenerator.
> Lidt at arbejde med for de nysgerrige,
> hvad står her?:
> 0000: 42 00 00 00 00 00 00 00 35 18 (hexdump fra transaktionsfil)
>
> Mvh RH

Hvad mener du med "tal" heltal eller komma tal?
BCD, er det det samme format som bruges i elektronik? hvor man bruger
4 bit til hvert ciffer ? så 10010110 = 96 altså 1001 = 9(ti'ere) og
0110 = 6 (en'ere)?
Et det et heltal repræcenteret med 4 bit pr. ciffer, så er de 10 bytes
det samme som 20 cifre?

Hilsen Hans...

Hans Milling (13-05-2002)
Kommentar
Fra : Hans Milling


Dato : 13-05-02 16:05

Slog lige op i min gamle Tannenbaum bog (Structured Computer
Organization), den fortæller lidt om BCD.
Mest brugt på gamle IBM mainframes, og er som jeg nævnet i mit
tidligere indlæg et heltal hvor man bruger 4 bits til at repræcentere
et enkelt decimal ciffer fra 0 til 9.
Men jeg tror nu dit program benytter kommatal. I mit Delphi 6, ligger
der en TDCB datastruktur, den er dog ikke 10 bytes lang, men hele 34
bytes lang, men det er muligt at lave sin egen variant, er er et
udsnit fra hjælpfilen:

TBcd type

The type that stores a binary coded decimal value.

Unit

FmtBcd

type
TBcd = packed record
Precision: Byte; { 1..64 }
SignSpecialPlaces: Byte; { Sign:1, Special:1, Places:6 }
Fraction: packed array [0..31] of Byte; { BCD Nibbles, 00..99 per
Byte, high Nibble 1st }
end;

Description

TBcd represents a binary coded decimal value. It contains the
following fields:

Field   Contents

Precision   The number of digits in the decimal version of the value.
SignSpecialPlaces   The sign bit (0 is positive, any other value
negative)
the special bit (nonzero indicates that the value is blank)
the number of digits after the decimal (0 to Precision)
Fraction   An array of BCD nibbles, 00 to 99 per byte, high nibble
first. Only the first Precision nibbles are used.

You can create a Variant that represents a TBcd value using the
VarFMTBcdCreate function. In fact, the easiest way to manipulate TBcd
values is to create Variants for them and use the built-in operators
provided by the Variant type.

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste