EBCDIC To ASCII : Encoding « Internationalization I18N « C# / C Sharp






EBCDIC To ASCII

        

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PefStudio.SegyViewer
{
    class Utils
    {
        /// <summary>
        /// 
        /// </summary>
        private static readonly byte[] EToA =
            { 0, 1, 2, 3, 156, 9, 134, 127, 151, 141,
            142, 11, 12, 13, 14, 15, 16, 17, 18, 19, 157,
            133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
            128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138,
            139, 140, 5, 6, 7, 144, 145, 22, 147, 148, 149,
            150, 4, 152, 153, 154, 155, 20, 21, 158, 26, 32,
            160, 161, 162, 163, 164, 165, 166, 167, 168, 91, 46,
            60, 40, 43, 33, 38, 169, 170, 171, 172, 173, 174,
            175, 176, 177, 93, 36, 42, 41, 59, 94, 45, 47,
            178, 179, 180, 181, 182, 183, 184, 185, 124, 44, 37,
            95, 62, 63, 186, 187, 188, 189, 190, 191, 192, 193,
            194, 96, 58, 35, 64, 39, 61, 34, 195, 97, 98,
            99, 100, 101, 102, 103, 104, 105, 196, 197, 198, 199,
            200, 201, 202, 106, 107, 108, 109, 110, 111, 112, 113,
            114, 203, 204, 205, 206, 207, 208, 209, 126, 115, 116,
            117, 118, 119, 120, 121, 122, 210, 211, 212, 213, 214,
            215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
            226, 227, 228, 229, 230, 231, 123, 65, 66, 67, 68,
            69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
            125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 238,
            239, 240, 241, 242, 243, 92, 159, 83, 84, 85, 86,
            87, 88, 89, 90, 244, 245, 246, 247, 248, 249, 48,
            49, 50, 51, 52, 53, 54, 55, 56, 57, 250, 251,
            252, 253, 254, 255 };

        public static int EBCDICToASCII(int ebcdic)
        {
            return EToA[ebcdic & 0xff] & 0xff;
        }

        //
        // ????EBCDIC->ASCII????
        //
        public static byte[] EBCDICToASCII(byte[] ebcdic)
        {
            var tobytes = new byte[ebcdic.Length];
            for (int i = 0; i < ebcdic.Length; i++) tobytes[i] = (byte)EBCDICToASCII(ebcdic[i]);
            return tobytes;
        }

        public static int ReadBigEndianInt32(byte[] bytes, int start)
        {
            var byte4 = new byte[4];
            byte4[0] = bytes[start + 3];
            byte4[1] = bytes[start + 2];
            byte4[2] = bytes[start + 1];
            byte4[3] = bytes[start];

            return BitConverter.ToInt32(byte4, 0);
        }

        public static int ReadBigEndianInt16(byte[] bytes, int start)
        {
            var byte2 = new byte[2];
            byte2[0] = bytes[start + 1];
            byte2[1] = bytes[start];

            return BitConverter.ToInt16(byte2, 0);
        }

        public static byte[] Swapbytes(byte[] bytes)
        {
            if (bytes.Length == 4)
            {
                byte tempb = bytes[0];
                bytes[0] = bytes[3];
                bytes[3] = tempb;
                tempb = bytes[1];
                bytes[1] = bytes[2];
                bytes[2] = tempb;
            }
            else if (bytes.Length == 2)
            {
                byte tempb = bytes[0];
                bytes[0] = bytes[1];
                bytes[1] = tempb;
            }

            return bytes;
        }

        public static Single ReadIEEESingle(byte[] bytes)
        {
            return BitConverter.ToSingle(Swapbytes(bytes), 0);
        }
    }
}

   
    
    
    
    
    
    
    
  








Related examples in the same category

1.Encoding Class represents a character encoding.
2.Encoding.ASCII encoding for the ASCII (7-bit) character set.
3.Gets an encoding for the UTF-16 format that uses the big endian byte order.
4.Read a text file saved with Big Endian Unicode encoding
5.Get byte count and max byte count
6.Display only the encodings that have one or more different names
7.Returns an array that contains all encodings.
8.Returns a sequence of bytes that specifies the encoding used.
9.Gets an encoding for the UTF-32 format using the little endian byte order.
10.Gets an encoding for the UTF-8 format.
11.Gets the Windows operating system code page that most closely corresponds to the current encoding.
12.Petscii Decoder
13.Petscii Encoder
14.extends System.Text.Encoding to create Petscii Encoding
15.SignedLoWord from IntPtr
16.SignedHiWord from IntPtr
17.Pad data to a WORD.
18.Returns the high WORD from a DWORD value.
19.Signed Lo Word
20.Signed Hi Word
21.Flip Endian
22.A Big-endian binary writer.
23.Big-endian binary reader
24.Is Chinese Character