Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ebcdic to ascii ?

11 views
Skip to first unread message

Alan Shaw

unread,
Aug 31, 1998, 3:00:00 AM8/31/98
to
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

Douglas Faulkner

unread,
Sep 2, 1998, 3:00:00 AM9/2/98
to
Hi,
I have done this sort of thing in the past. Fundamentally you need to find
an EBCDIC to ASCII conversion chart, make a file using an editor which
contains these in a list then use this to convert just bytes 10-12 in your
data to their ASCII equivalents, then use them as you wish.
Hope this helps,
Doug.

Alan Shaw wrote in message <6seheq$7v...@forums.borland.com>...

Bernardo Garcia Arias-Salgado

unread,
Sep 2, 1998, 3:00:00 AM9/2/98
to
> 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.

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

Tom Cartmel

unread,
Sep 2, 1998, 3:00:00 AM9/2/98
to
// EBCDIC to ASCII translate table (only UGL character set)

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

Marcus Aurelius

unread,
Sep 3, 1998, 3:00:00 AM9/3/98
to
In article <6siuqj$dt...@forums.borland.com>, "Douglas Faulkner" <faul...@adam.com.au> wrote:
>Hi,
>I have done this sort of thing in the past. Fundamentally you need to find
>an EBCDIC to ASCII conversion chart, make a file using an editor which
>contains these in a list then use this to convert just bytes 10-12 in your
>data to their ASCII equivalents, then use them as you wish.
>Hope this helps,
>Doug.
>
>Alan Shaw wrote in message <6seheq$7v...@forums.borland.com>...
>>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.

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


0 new messages