コード例 #1
0
        static public string DecodeHexStrToStr(string strHex)
        {
            if (strHex == string.Empty)
            {
                return(string.Empty);
            }
            try
            {
                int intNum1 = strHex.Length;
                EXException.CheckEXError((intNum1 % 4) == 0, "EX {30CF8C85-C636-4f3e-B97E-3D3E02B433FE}");
                StringBuilder sbResult = new StringBuilder(new string(' ', intNum1 / 4));
                //sbResult.Length=intNum1*4;
                //sbResult.EnsureCapacity(intNum1*4);

                intNum1--;

                for (int intCounter1 = 0; intCounter1 <= intNum1; intCounter1 = intCounter1 + 4)
                {
                    string chStringChar1 = new string(strHex[intCounter1], 1);
                    string chStringChar2 = new string(strHex[intCounter1 + 1], 1);
                    string chStringChar3 = new string(strHex[intCounter1 + 2], 1);
                    string chStringChar4 = new string(strHex[intCounter1 + 3], 1);

                    //byte[] btarrArray = new byte[];

                    byte bt1 = Convert.ToByte(chStringChar1, 16);
                    byte bt2 = Convert.ToByte(chStringChar2, 16);
                    byte bt3 = Convert.ToByte(chStringChar3, 16);
                    byte bt4 = Convert.ToByte(chStringChar4, 16);

                    UInt32 uintChar = 0;
                    TEXCSMath.FourBytesToUInt32(bt1, bt2, bt3, bt4, out uintChar);

                    sbResult[intCounter1 / 4] = (char)uintChar;
                    //chStringChar.
                }

                return(sbResult.ToString());
            }
            catch (Exception exc)
            {
                EXException.ThrowEXException("Πρόβλημα στην αποκωδικοποίηση του HEX αλφαριθμητικού.", exc);
                return(string.Empty);
            }
        }