This is the data in a file:
Position Hexa display
(not to accrete)
00000000 31 39 31 30 30 30 30 30 30 30 30 30 30 30 30 30 1910000000000000
00000010 30 30 30 30 30 30 02 66 2C 38 EA 2F 30 31 30 38 000000[1]f,8ê/0108
00000020 31 33 EB 2F 30 32 30 38 31 33 EE 2F 30 35 30 38 13ë/020813î/0508
00000030 31 33 EF 2F 30 36 30 38 31 33 F0 2F 30 37 30 38 13ï/060813d/0708
00000040 31 33 F1 2F 30 38 30 38 31 33 F2 2F 30 39 30 38 13ñ/080813ò/0908
00000050 31 33 F5 2F 31 32 30 38 31 33 F6 2F 31 33 30 38 13o/120813ö/1308
00000060 31 33 F7 2F 31 34 30 38 31 33 F8 2F 31 35 30 38 13÷/140813o/1508
00000070 31 33 F9 2F 31 36 30 38 31 33 FD 2F 32 30 30 38 13ù/160813y/2008
00000080 31 33 FE 2F 32 31 30 38 31 33 FF 2F 32 32 30 38 13_/210813ÿ/2208
00000090 31 33 00 30 32 33 30 38 31 33 03 30 32 36 30 38 13ú0230813
02608000000A0 31 33 04 30 32 37 30 38 31 33 05 30 32 38 30 38 13
027081302808000000B0 31 33 06 30 32 39 30 38 31 33 07 30 33 30 30 38 13029081303008
000000C0 31 33 08 30 33 31 30 38 31 33 09 30 30 31 30 39 130310813 00109
000000D0 31 33 0A 30 30 32 30 39 31 33 0B 30 30 33 30 39 13ú002091300309
000000E0 31 33 0C 30 30 34 30 39 31 33 0D 30 30 35 30 39 1300409130509
000000F0 31 33 0E 30 30 36 30 39 31 33 11 30 30 39 30 39 13006091300909
00000100 31 33 12 30 31 30 30 39 31 33 13 30 31 31 30 39 13010091301109
00000110 31 33 14 30 31 32 30 39 31 33 15 30 31 33 30 39 13012091301309
00000120 31 33 18 30 31 36 30 39 31 33 19 30 31 37 30 39 13016091301709
00000130 31 33 1A 30 31 38 30 39 31 33 1B 30 31 39 30 39 13018091301909
00000140 31 33 1C 30 32 30 30 39 31 33 1F 30 32 33 30 39 13020091302309
00000150 31 33 20 30 32 34 30 39 31 33 21 30 32 35 30 39 13 0240913!02509
00000160 31 33 22 30 32 36 30 39 31 33 23 30 32 37 30 39 13"0260913#02709
00000170 31 33 26 30 33 30 30 39 31 33 37 25 33 31 30 31 13&03009137%3101
00000180 30 36 95 2C 30 31 30 34 31 31 B3 2C 30 31 30 35 06,0104113,0105
00000190 31 31 D2 2C 30 31 30 36 31 31 F0 2C 30 31 30 37 11O,010611d,0107
000001A0 31 31 0F 2D 30 31 30 38 31 31 2E 2D 30 31 30 39 11-010811.-0109
000001B0 31 31 4C 2D 30 31 31 30 31 31 6B 2D 30 31 31 31 11L-011011k-0111
000001C0 31 31 89 2D 30 31 31 32 31 31 A8 2D 30 31 30 31 11%-011211"-0101
000001D0 31 32 C7 2D 30 31 30 32 31 32 E4 2D 30 31 30 33 12Ç-010212ä-0103
000001E0 31 32 03 2E 30 31 30 34 31 32 21 2E 30 31 30 35 12
.010412!.0105000001F0 31 32 40 2E 30 31 30 36 31 32 5E 2E 30 31 30 37 12@.010612^.0107
00000200 31 32 7D 2E 30 31 30 38 31 32 9C 2E 30 31 30 39 12}.010812o.0109
00000210 31 32 BA 2E 30 31 31 30 31 32 D9 2E 30 31 31 31 12º.011012U.0111
00000220 31 32 F7 2E 30 31 31 32 31 32 16 2F 30 31 30 31 12÷.011212/0101
00000230 31 33 35 2F 30 31 30 32 31 33 51 2F 30 31 30 33 135/010213Q/0103
00000240 31 33 70 2F 30 31 30 34 31 33 8E 2F 30 31 30 35 13p/010413Z/0105
00000250 31 33 AD 2F 30 31 30 36 31 33 CB 2F 30 31 30 37 13-/010613E/0107
00000260 31 33 EA 2F 30 31 30 38 31 33 09 30 30 31 30 39 13ê/010813 00109
00000270 31 33 30 31 31 30 31 33 30 37 34 35 31 30 13011013074510
0x27E or Dec 638
Its description in COBOL is:
V005 01 REG-FEC-PC.
V005 02 FILLER VALUE '1910000000000000000000'
PIC X(22).
V005 02 FILLER VALUE +614 PIC S9(4) COMP.
V005 02 FEC-SC1 PIC S9 COMP.
V005 02 FEC-SC2 PIC X.
V005 02 FEC-CTE occurs 45 times,
04 FEC-BINC PIC X(2).
04 FEC-DSPC PIC X(6).
V005 02 FEC-CTE occurs 30 times,
04 FEC-BINH PIC X(2).
04 FEC-DSPH PIC X(6).
V005 02 FEC-ACT PIC X(6).
V005 02 HOR-ACT PIC X(6).
In C++ I definend it as:
// Fecha binaria relativa a 1920 - std SICB
struct Sfecbin {
union Ufecbin {
char fecB [2];
short unsigned fecbin;
};
};
// Esta es la llave de los datos financieros.
struct sFinKey {
union Fkey {
char Llave [22];
struct Ekey {
char Fbco [3];
char Ffil [3];
union Ccont {
char Fccont [10];
struct dccont {
char Fcpri [3];
char Fcsub [3];
char Fcssb [3];
char Fcdvr;
};
};
char Fmon [3];
char Fdpt [3];
};
};
};
// Despiece de la fecha Display viene Fdd en datos
// historicos como 01 se pasa al ultimo dia
// mes o dias del mes.
struct SFecDsp {
union Fdsp {
char Fecdsp [6];
struct sfdsp {
char Fdd [2];
char Fmm [2];
char Faa [2];
};
};
};
struct SHorDsp {
union Hdsp {
char Hordsp [6];
struct sHdsp {
char Hhh [2];
char Hmm [2];
char Hss [2];
};
};
};
struct TFec {
Sfecbin FecBin;
SFecDsp FecDsp;
};
struct RegFec {
sFinKey DmyK;
char RL [2];
char SldCnt;
TFec FecCte [45];
TFec FecHst [30];
SFecDsp FecAct;
SHorDsp HorAct;
short HabAnt;
};
union LectRFec {
RegFec TabFecs;
char RFbuf [638];
} BufLect;
I read it in to memory with:
int bytes = 638;
int bytes2 = 0;
int bytesLeidos;
ifstream entrada("c:\\RaamSoft\\CplusSICB\\Xcarlos\\Unpack\\SICBCONS201310.SLD", ios::in | ios::binary);
entrada.read( (char *) &BufLect, sizeof(BufLect) );
Now how do I access each field?
To print for example.