× 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.


  • Subject: RE: problem in printing packed decimal in ILE C/400
  • From: Buck Calabro <mcalabro@xxxxxxxxxxxx>
  • Date: Tue, 1 Jun 1999 09:22:31 -0400

Baba,
Here's a snippet from one of my "test" programs.  Field TOTAL is packed(9,2)
I found this information in the C manual and some help from the list :-)

#include <stdio.h>                                                     
#include <stdlib.h>                                                    
#include <recio.h>                                                     
#include <decimal.h>                                                   
#include <xxcvt.h>                                                     
                                                                       
/* Options are:                                                     */ 
/*              input - include input only fields                   */ 
/*              _P    - create packed (unaligned) struct            */ 
/*              d     - create decimal fields for packed numbers    */ 
/*              p     - create char array fields for packed numbers */ 
#pragma mapinc("master","BUCK/MASTER(RMASTER)","input","_P d")         
#include "master"                                                      
                                                                       
int main(void)                                                         
{                                                                      
    _RFILE      *fp;                                                   
    _XXOPFB_T   *opfb;                                                 
    BUCK_MASTER_RMASTER_i_t ddsbuf;                                    
                                                                        
    /* Open the file for processing in arrival sequence.             */ 
    if (( fp = _Ropen ( "BUCK/MASTER", "rr, arrseq=Y" )) == NULL )      
    {                                                                   
        printf ( "Open failed\n" );                                     
        exit ( 1 );                                                     
    }                                                                   
                                                                        
    /* Get the library and file names of the file opened.            */ 
    opfb = _Ropnfbk ( fp );                                             
    printf ( "Library: %10.10s\nFile:    %10.10s\n",                    
                    opfb->library_name,                                 
                    opfb->file_name);                                   
                                                                        
    printf ( "recl=%d\n", (fp->buf_length) );                           
                                                                        
    /* Get the first record.                                         */ 
    _Rreadf ( fp, &ddsbuf, sizeof(ddsbuf), __DFT );                     
                                                                        
    printf("TOTAL = %D(*,*)\n",    
        digitsof(ddsbuf.TOTAL),    
        precisionof(ddsbuf.TOTAL), 
        ddsbuf.TOTAL);             

> -----Original Message-----
> From: Baba Rahiman 
> Sent: Tuesday, June 01, 1999 8:12 AM
> To:   'midrange-l@midrange.com'
> Subject:      problem in printing packed decimal in ILE C/400
> 
> Hi everybody,
> 
> 
> > We are unable to get printable/readable normal character form, while
> > reading record in Physical file using  _Ropen()/_Rreadn() on ILE C/400-(
> > V3R1M0).
> >
> > Sample code:
> > int main(void)
> >   {
> >  char record??(20??);
> >   _RFILE *fb;_RIOFB_T *fbt;
> >  fb = _Ropen("PHname","rr");
> >  fbt = _Rreadn(fb,record,sizeof(record),__DFT);
> >  printf(" %s \n ",record);
> > }
> >
> > Problem: We're not able to print on screen if it is packed_decimal
> > data type
> 
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


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.