× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hello Gerry,

The MI builtins offer a solution to the runtime definition requirement -
here's an example:

     ** See QSYSINC/MIH.MICPTCOM
     D T_SIGNED        C                   x'00'
     D T_FLOAT         C                   x'01'
     D T_ZONED         C                   x'02'
     D T_PACKED        C                   x'03'
     D T_UNSIGNED      C                   x'0A'
     **
     D DPA_Template_T  Ds                  Based( pDPA )
     D  SclTyp                        1a
     D  RcvLen                        5i 0
     D   DecPos                       3i 0 Overlay( RcvLen: 1 )
     D   TotDig                       3i 0 Overlay( RcvLen: 2 )
     D  Rsv                          10i 0
     ** Late bound copy numeric variable:
     D LBCPYNV         Pr                  ExtProc( '_LBCPYNV' )
     D  Target                         *   Value
     D  Target_Tpl                         Const Like( DPA_Template_T )
     D  Source                         *   Value
     D  Source_Tpl                         Const Like( DPA_Template_T )
     ** Late bound copy numeric variable - with rounding:
     D LBCPYNVR        PR                  extproc( '_LBCPYNVR' )
     D  Target                         *   Value
     D  Target_Tpl                         Const Like( DPA_Template_T )
     D  Source                         *   Value
     D  Source_Tpl                         Const Like( DPA_Template_T )
     **
     D SrcTpl          s                   Like( DPA_Template_T )
     D TgtTpl          s                   Like( DPA_Template_T )
     **
     D SrcDs           Ds
     D  Fields25                     25a
     D  P12_3                        12p 3 Inz( -12345678.915 )
     D TgtDs           Ds
     D  Fields38                     38a
     D  S11_2                        11s 2
     **
     D Msg             s             52a
     **
     C                   Eval      pDPA   = %Addr( SrcTpl )
     C                   Eval      SclTyp = T_PACKED
     C                   Eval      TotDig = 12
     C                   Eval      DecPos = 3
     C                   Eval      Rsv    = 0
     **
     C                   Eval      pDPA   = %Addr( TgtTpl )
     C                   Eval      SclTyp = T_ZONED
     C                   Eval      TotDig = 11
     C                   Eval      DecPos = 2
     C                   Eval      Rsv    = 0
     **
     C                   CallP     LBCPYNVR( %Addr( TgtDs ) + 38
     C                                     : TgtTpl
     C                                     : %Addr( SrcDs ) + 25
     C                                     : SrcTpl
     C                                     )
     **
     C                   Eval      Msg = %char( P12_3 ) + ' --> ' +
     C                                   %char( S11_2 )
     **
     C     Msg           Dsply
     **
     C                   return
     **

Best regards,
Carsten Flensburg




                    "Tucker Gerry"
                    <Gerry.Tucker@techni       To:     <rpg400-l@midrange.com>
                    color.com>                 cc:
                    Sent by:                   Subject:     RE: Converting 
string containing packed decimal to numeric
                    rpg400-l-admin@midra        decimal
                    nge.com


                    30-01-2002 10:15
                    Please respond to
                    rpg400-l






Is there any references in IBM manuals to cvthc?  I've checked the ILE C
for AS/400 Run-Time Reference but can't find it.  I know that it's in
the QC2UTIL1 service program.

I was trying to use QXXPTOI but that only returns integer values.  I
need this to return values whose size and decimal positions is only
known at runtime.

Regards,

Gerry Tucker
Senior Analyst Programmer
Technicolor Distribution Services
Wembley, U.K.



>-----Original Message-----
>From: Buck Calabro [mailto:Buck.Calabro@commsoft.net]
>Sent: 29 January 2002 18:48
>To: rpg400-l@midrange.com
>Subject: RE: Converting string containing packed decimal to numeric
>decimal
>
>
>Gerry wrote:
>
>>Is there a quick way to a string
>>containing packed decimal data into
>>its decimal equivalent, knowing the
>>number of length and decimal positions?
>
>One way is the C function(?) cvtch.  I'm pretty sure you'll
>find hits in the
>archives and maybe on the FAQ.
>
>     D H2C             Pr                  ExtProc('cvthc')
>     D                                 *   Value
>     D                                 *   Value
>     D                               10I 0 Value
>
>     D RecPtr          S               *   inz
>     D SrcPtr          S               *   inz
>     D Size            S             10I 0 inz
>
>     C                   Eval      SrcPtr = %addr(AMARecHex)
>     C                   Eval      RecPtr = %addr(AMARecChr)
>     C                   Eval      Size=Recl * 2
>     C* RECL is the length of the packed data.
>
>     C                   CALLP     H2C(RecPtr :
>     C                                 SrcPtr :
>     C                                 Size)
>
>After converting from hex to char, it'll be fairly simple to
>map that to a
>data structure and re-define as zoned.
>
>  --buck
>_______________________________________________
>This is the RPG programming on the AS400 / iSeries (RPG400-L)
>mailing list
>To post a message email: RPG400-L@midrange.com
>To subscribe, unsubscribe, or change list options,
>visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
>or email: RPG400-L-request@midrange.com
>Before posting, please take a moment to review the archives
>at http://archive.midrange.com/rpg400-l.
>
>
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
or email: RPG400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.







As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.