[Tutor] Converting EBCDIC characters to ASCII

Steve Bricker bricker.steve at imonmail.com
Thu Nov 13 19:07:31 CET 2008


  BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }I
stand corrected.  There was enough information.  Thank you.
 BAT file has nothing to do with Python.  I used it because I knew
how.  Once I figure it out in Python, I'll use that instead.
 Steve Bricker 
 On Thu 13/11/08 11:58 , bob gailer bgailer at gmail.com sent:
 Steve Bricker wrote:
 > I am trying to build an application for work that FTPs a file from
an 
 > IBM mainframe to my Windows desktop then process it.  The 
 > EBCDIC-to-ASCII conversion works nicely (using a BAT file I
created) 
 > except for three packed-decimal data fields (for example, 
 > X'0000000000000000014C' is equal to integer 14).  I am assuming I
need 
 > to go through this byte-by-byte to convert.  Is that the best 
 > approach, or is there a better way?
 What does a BAT file have to do with Python?
 Yes you will have to process the packed-decimal data fields byte-by 
 byte. If the data volume is high then I'd construct a dictionary
with a 
 key for each possible byte value, lookup each byte in the dictionary
and 
 accumulate the total:
 d={}
 for l in range(10):
     for r in range(10):
         k = l*16+r
         v = l*10+r
         d[chr(k)] = v
 This gives a lookup table for all but the rightmost byte. If a byte 
 contains for example 'x91' then d[byte] gives 91
 The rightmost byte holds 1 digit and the sign (C=plus) in your
example.  
 Extend the dictionary to handle these:
 for l in range(10):
     for r in (11, 13):
         k = l*16+r
         v = l*10
         d[chr(k)] = (v, 1)
 for l in range(10):
     for r in (11, 13):
         k = l*16+r
         v = l*10
         d[chr(k)] = (v, -1)
 m = 10
 value, sign = d[bcdstring[-1]]
 for byte in bcdstring[-2::-1]:
     value += m*d[byte]
     m *= 100
 value = value * sign
 -- 
 Bob Gailer
 Chapel Hill NC 
 919-636-4239
 When we take the time to be aware of our feelings and 
 needs we have more satisfying interatctions with others.
 Nonviolent Communication provides tools for this awareness.
 As a coach and trainer I can assist you in learning this process.
 What is YOUR biggest relationship challenge?
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20081113/605a9e01/attachment.htm>


More information about the Tutor mailing list