× 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: EBCIDIC to ASCII
  • From: Chris Bipes <rpg@xxxxxxxxxxxxxxx>
  • Date: Mon, 22 Nov 1999 07:45:06 -0800

There are several ways.  The ICONV api is extremely fast and easy to use.
You can convert from any code page to any code page.  EBCDIC code page I
used was 37 and the ASCII code page was 813.  The procedure interfaces are
posted below.

 *------------------------------------------------------------------

 * Prototype for Code Conversion - Open

 *------------------------------------------------------------------

d IConvOpen       PR            52A   ExtProc('QtqIconvOpen')

d                                 *   Value options(*string)
To Code             
d                                 *   Value options(*string)
Fr Code             
 *------------------------------------------------------------------

 * Prototype for Code Conversion

 *------------------------------------------------------------------

d IConv           PR            10i 0 ExtProc('iconv')

d                               52a   Value
Code Descriptor     
d                                 *   Value
ptr to InBuffer Ptr 
d                                 *   Value
ptr to InSize ptr   
d                                 *   Value
ptr to OutBuffer Ptr
d                                 *   Value
ptr to OutSize ptr  

 ****************************************************************          
 *  Code Page Conversions  (iconv_t)                                       
 *****************************************************************         
d ToAscii         DS                                                       
d  ICORV_A                1      4b 0                                      
 *                  return value to indicate if error occurred             
d  ICOC_A                 5     52b 0 DIM(00012)                           
 *                                             cd                          
 *                                                                         
d ToEbcdic        DS                                                       
d  ICORV_E                1      4b 0                                      
 *                  return value to indicate if error occurred             
d  ICOC_E                 5     52b 0 DIM(00012)                           
 *                                             cd                          
 *                                                                         
 *                                                                         
d p_Qascii        S               *   inz(%addr(Qascii))                   
d Qascii          DS            32                                         
d  asciiCP                1      4b 0 inz(00813)                           
d  asciiCA                5      8b 0 inz(0)                               
d  asciiSA                9     12b 0 inz(0)                               
d  asciiSS               13     16b 0 inz(1)                               
d  asciiIL               17     20b 0 inz(0)                               
d  asciiEO               21     24b 0 inz(1)                               
d  asciiR                25     32a   inz(*allx'00')                       
 *                                                                         
d p_Qebcdic       S               *   inz(%addr(Qebcdic))                  
d Qebcdic         DS            32                                         
d  ebcdicCP               1      4b 0 inz(00037)                           
d  ebcdicCA               5      8b 0 inz(0)                               
d  ebcdicSA               9     12b 0 inz(0)                               
d  ebcdicSS              13     16b 0 inz(1)                               
d  ebcdicIL              17     20b 0 inz(0)                               
d  ebcdicEO              21     24b 0 inz(1)                               
d  ebcdicR               25     32a   inz(*allx'00')                       

 * translate response to ASCII                                             
c                   eval      p_InBuff  = %addr(VRESP)                     
c                   eval      p_OutBuff = %addr(VRESP)                     
c                   eval      InBytesLeft = %len(%trim(VRESP))             
c                   eval      OutBytesLeft = %len(VRESP)                   
c                   eval      rc = IConv(ToAscii:                          
c                                        %addr(p_InBuff):                  
c                                        p_InBytes:                        
c                                        %addr(p_OutBuff):                 
c                                        p_OutBytes)                       


** this is done at program initialization (*INZSR)
 * setup code page conversion ebcdic - ascii                               
c                   eval      ToAscii  = IConvOpen(p_Qascii:               
c                                                  p_Qebcdic)              
                                                                           
 * setup code page conversion ascii - ebcdic                               
c                   eval      ToEbcdic = IConvOpen(p_Qebcdic:              
c                                                  p_Qascii)               

Hope this helps

Christopher K. Bipes     mailto:ChrisB@Cross-Check.com
Sr. Programmer/Analyst   mailto:Chris_Bipes@Yahoo.com
CrossCheck, Inc.         http://www.cross-check.com
6119 State Farm Drive    Phone: 707 586-0551 x 1102
Rohnert Park CA  94928 Fax: 707 586-1884

*Note to Recruiters
Neither I, nor anyone that I know of, is interested in any new and/or
exciting positions. Please do not contact me.

-----Original Message-----
From: Vishal Gupta [mailto:vishgupta@hotmail.com]
Sent: Sunday, November 21, 1999 11:29 PM
To: rpg400-l@midrange.com
Subject: EBCIDIC to ASCII


Hi,

I have to convert a file from  EBCIDIC to ASCII format on AS/400 without 
using ILE C becouse I don't have C complier with me.
Is there any utility to do this or any other method/way. Please suggest.

Thanks,
Vishal
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-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.