gpt4 book ai didi

c++ - 从 COBOL 生成的 .DAT 文件进行数据转换

转载 作者:行者123 更新时间:2023-11-28 03:52:22 25 4
gpt4 key购买 nike

我正在尝试从 COBOL 程序生成的 .DAT 文件中获取值。但问题是当我尝试将数据显示到我的 C++ 程序时。我得到一个奇怪的值,比如 15.25 我得到 960000。

我的问题是:导入的首选数据类型是什么

PIC  S9999V99  COMP-5  VALUE +0

and

PIC S9(7) COMP-5 VALUE +0

我的 C++ 代码将字节导入 long

BOOL Import( LONG &nVal, INT nNumChars, FILE *pFile )
{
char strVal[10];

for ( int n = 0; n < (nNumChars); n++ )
{
if ( fread( &strVal[n], 1, 1, pFile ) != 1 )
{
return FALSE;
}
}

strVal[n] = NULL;

nVal = atol(strVal);

return TRUE;
}

第一条记录的十六进制

30 31 34 38 35 37 42 E7    03 00 00 00 00 00 00 31
32 2F 34 32 20 20 31 30 30 30 30 20 20 20 20 20
20 20 20 20 20 20 20 20

最佳答案

这是您要阅读的记录:

  0  1  4  8  5  7  B --    -- -- --  z e r o e s 1    2  / 4  2   b  b  1  0

30 31 34 38 35 37 42 E7 03 00 00 00 00 00 00 31 32 2F 34 32 20 20 31 30
///////////////////////////////////////////////////////////////////////////////
0 0 0 b b b b b b b b b b b b b

30 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20

在哪里

b means whitespace  

zeroes are binary zeros

-- is a BINARY NUMBER COMP-5 and reversed (000003E7) == 999

因此,没有您的 1525 的踪迹,但这也许可以帮助您识别内容。 看看那个“999”!

喂!

关于c++ - 从 COBOL 生成的 .DAT 文件进行数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com