Than you,
Alan Shaw
Alan Shaw wrote in message <6seheq$7v...@forums.borland.com>...
You can use a translation table, take a look in http://www.snippets.org/ the
file A2E.C have a general ASCII/EBCDIC conversion functions. They use the
standard EBCDIC table, recently IBM adapt the tables to specific countries and
charsets, but there are minor changes, ten or twenty special characters, the
basic remains unchanged ...
--
+------------------------------------+
| Bernardo Garcia Arias-Salgado |
| Teknoland I+D |
| mailto:ber...@teknoland.es |
+------------------------------------+------------------+
| Aunque parezca de cajon, las opiniones expresadas son |
| personales y no representan la opinion de la empresa. |
+-------------------------------------------------------+
unsigned char ebcdic_to_ascii_table[ 256 ] = {
/* 00 */ 0x00, 0x01, 0x02, 0x03, 0xCF, 0x09, 0xD3, 0x7F,
/* 08 */ 0xD4, 0xD5, 0xC3, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
/* 10 */ 0x10, 0x11, 0x12, 0x13, 0xC7, 0xB4, 0x08, 0xC9,
/* 18 */ 0x18, 0x19, 0xCC, 0xCD, 0x83, 0x1D, 0xD2, 0x1F,
/* 20 */ 0x81, 0x82, 0x1C, 0x84, 0x86, 0x0A, 0x17, 0x1B,
/* 28 */ 0x89, 0x91, 0x92, 0x95, 0xA2, 0x05, 0x06, 0x07,
/* 30 */ 0xE0, 0xEE, 0x16, 0xE5, 0xD0, 0x1E, 0xEA, 0x04,
/* 38 */ 0x8A, 0xF6, 0xC6, 0xC2, 0x14, 0x15, 0xC1, 0x1A,
/* 40 */ 0x20, 0xA6, 0xE1, 0x80, 0xEB, 0x90, 0x9F, 0xE2,
/* 48 */ 0xAB, 0x8B, 0x9B, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
/* 50 */ 0x26, 0xA9, 0xAA, 0x9C, 0xDB, 0xA5, 0x99, 0xE3,
/* 58 */ 0xA8, 0x9E, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
/* 60 */ 0x2D, 0x2F, 0xDF, 0xDC, 0x9A, 0xDD, 0xDE, 0x98,
/* 68 */ 0x9D, 0xAC, 0xBA, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
/* 70 */ 0xD7, 0x88, 0x94, 0xB0, 0xB1, 0xB2, 0xFC, 0xD6,
/* 78 */ 0xFB, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
/* 80 */ 0xF8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
/* 88 */ 0x68, 0x69, 0x96, 0xA4, 0xF3, 0xAF, 0xAE, 0xC5,
/* 90 */ 0x8C, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
/* 98 */ 0x71, 0x72, 0x97, 0x87, 0xCE, 0x93, 0xF1, 0xFE,
/* A0 */ 0xC8, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
/* A8 */ 0x79, 0x7A, 0xEF, 0xC0, 0xDA, 0x5B, 0xF2, 0xF9,
/* B0 */ 0xB5, 0xB6, 0xFD, 0xB7, 0xB8, 0xB9, 0xE6, 0xBB,
/* B8 */ 0xBC, 0xBD, 0x8D, 0xD9, 0xBF, 0x5D, 0xD8, 0xC4,
/* C0 */ 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
/* C8 */ 0x48, 0x49, 0xCB, 0xCA, 0xBE, 0xE8, 0xEC, 0xED,
/* D0 */ 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
/* D8 */ 0x51, 0x52, 0xA1, 0xAD, 0xF5, 0xF4, 0xA3, 0x8F,
/* E0 */ 0x5C, 0xE7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
/* E8 */ 0x59, 0x5A, 0xA0, 0x85, 0x8E, 0xE9, 0xE4, 0xD1,
/* F0 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
/* F8 */ 0x38, 0x39, 0xB3, 0xF7, 0xF0, 0xFA, 0xA7, 0xFF
};
On Mon, 31 Aug 1998 12:10:46 -0400, "Alan Shaw" <as...@jetson.com>
wrote:
>I am processing an ebcidic file and need to convert 3 characters of the
>record to ASCII for use in output file naming. I am using
>ifstream::read(char * inbuff, int len) to for input. I need to assign
>positions 10 - 12 in my input record to a variable convert to ascii. Any
>idea how I could get this done? Any help would be greatly appreciated.
>
>Than you,
>
>Alan Shaw
>
Tom Cartmel
tom.c...@biometmail.com
Just because I'm a nice guy.....
extern const unsigned char ascii_to_ebcdic [256] =
{
0x00,0x01,0x02,0x03,0x37,0x2d,0x2e,0x2f,0x16,0x05,0x25,0x0b,0x0c,0x0d,0x0e,
0x0f
,0x10,0x11,0x12,0x13,0x3c,0x3d,0x32,0x26,0x18,0x19,0x3f,0x27,0x1c,0x1d,0x1e,
0x1f
,0x40,0x4f,0x7f,0x7b,0x5b,0x6c,0x50,0x7d,0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,
0x61
,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,
0x6f
,0x7c,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,
0xd6
,0xd7,0xd8,0xd9,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0x4a,0xe0,0x5a,0x5f,
0x6d
,0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,
0x96
,0x97,0x98,0x99,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xc0,0x6a,0xd0,0xa1,
0x07
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f
,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0xff
} ;
extern const unsigned char ebcdic_to_ascii [256] =
{
0x00,0x01,0x02,0x03,0x5c,0x09,0x5c,0x7f,0x5c,0x5c,0x5c,0x0b,0x0c,0x0d,0x0e,
0x0f
,0x10,0x11,0x12,0x13,0x5c,0x5c,0x08,0x5c,0x18,0x19,0x5c,0x5c,0x1c,0x1d,0x1e,
0x1f
,0x5c,0x5c,0x5c,0x5c,0x5c,0x0a,0x17,0x1b,0x5c,0x5c,0x5c,0x5c,0x5c,0x05,0x06,
0x07
,0x5c,0x5c,0x16,0x5c,0x5c,0x5c,0x5c,0x04,0x5c,0x5c,0x5c,0x5c,0x14,0x15,0x5c,
0x1a
,0x20,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5b,0x2e,0x3c,0x28,0x2b,
0x21
,0x26,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5d,0x24,0x2a,0x29,0x3b,
0x5e
,0x2d,0x2f,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x7c,0x2c,0x25,0x5f,0x3e,
0x3f
,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x60,0x3a,0x23,0x40,0x27,0x3d,
0x22
,0x5c,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x5c,0x5c,0x5c,0x5c,0x5c,
0x5c
,0x5c,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x5c,0x5c,0x5c,0x5c,0x5c,
0x5c
,0x5c,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x5c,0x5c,0x5c,0x5c,0x5c,
0x5c
,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,
0x5c
,0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x5c,0x5c,0x5c,0x5c,0x5c,
0x5c
,0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x5c,0x5c,0x5c,0x5c,0x5c,
0x5c
,0x5c,0x5c,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5c,0x5c,0x5c,0x5c,0x5c,
0x5c
,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x5c,0x5c,0x5c,0x5c,0x5c,
0xff
} ;
John - N8086N
------------------------------------------------
Are you interested in a professional society or
guild for programmers?
See www.colosseumbuilders.com/american.htm
EMail Address:
|m.i.a.n.o @ |
|c.o.l.o.s.s.e.u.m.b.u.i.l.d.e.r.s.|
|c.o.m.|