This topic has been archived. It cannot be replied.
-
工作学习 / 学科技术讨论 / 请教Packed Decimal Format 问题 -- 怎么convert一般的decimal到Packed Decimal Format??-- 本人对unix和IBM Framework 一无所知, 请教各位大虾:
1. 要send一个flat file 去IBM framework, 有一个字段要求用Decimal 13,2 转换为Packed Field (P12,2) -- 指定长度为6位.
2. 看了一些关于Packed Decimal Format 的文章,还是没领会Pack机制,只知道用nibble代替byte来代表0-9.
3. 没有SAMPLE, 因为是生成flat file, 希望知道转换成什么样的string,才能被IBM FRAMEWORK 上的程序识别.
4. Packed Decimal Format 到底在哪里使用?数据库里的还是操作系统上的数据类型?
-fish_in_toronto(fish_in_toronto);
2008-1-10
{450}
(#4177788@0)
-
自己UP一下,Packed Decimal Format =COMP-3
-fish_in_toronto(fish_in_toronto);
2008-1-10
(#4177853@0)
-
IBM定义的packed decimal format有多种格式,不知道comp-3是哪一种。似乎不是nibble,如果是,decimal(13,2)不能转化成6个byte。nibble的转化是最简单的。似乎是要你写一个简单的C程序,将浮点数转化成comp-3的二进制形式。packed decimal可能用于数据库,应用程序(象cobol程序),或机器内码表示。
-northstory(leo);
2008-1-11
{158}
(#4179492@0)
-
非常感谢! 应该是nibble转换,1234567890.99(P12,2)转换为7位.(不是原贴中的6位).Download了一个程序,号称可以在WINDOWS上转换Decimal为Packed Demial in ASCII format. 不过现在我有些担心文本格式问题,程序是C#或VB运行在WINDOWS SERVER 上的,不可能将该field生成为EBCDIC格式,如果是ASCII格式,file ftp上IBM Framework后,这个Packed Decimal field 中的ASCII码能被识别吗?
-fish_in_toronto(fish_in_toronto);
2008-1-11
{277}
(#4180743@0)
-
packed decimal已经是二进制形式,不应该有ascii码和ebcdic码之分。一个可能的区别是高位在前,还是低位在前(一个字节8位,前4位是高位或低位,ibm定义的方式与其他机器不一样)。
-northstory(leo);
2008-1-11
(#4180876@0)