[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
 > IBM mainframe to my Windows desktop then process it.  The 
 > EBCDIC-to-ASCII conversion works nicely (using a BAT file I
 > except for three packed-decimal data fields (for example, 
 > X'0000000000000000014C' is equal to integer 14).  I am assuming I
 > 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
 accumulate the total:
 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
 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 
 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