コード例 #1
0
ファイル: FunTypeConversion.cs プロジェクト: k2un/k2un
        /// <summary>
        /// Asc String Data 를 원하는 Data 로 바꾸어 준다
        /// </summary>
        /// <param name="strData">ASCII String Data(AB)</param>
        /// <param name="StringType">바꾸고자 하는 Type</param>
        /// <returns></returns>
        public static string funAscStringConvert(string strData, EnuEQP.StringType StringType)
        {
            string dstrReturn = "";
            string dstrTemp   = "";
            int    dintTemp   = 0;

            try
            {
                switch (StringType)
                {
                //ASCII Data(AB) => Binary Data(0100 0001 0100 0010)
                case EnuEQP.StringType.Binary:
                    dstrReturn = funAscStringConvert(strData, EnuEQP.StringType.Hex);               //ASC를 HEX로 바꾼다.
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.Binary);               //HEX를 Bynary로 바꾼다.
                    break;

                //ASCII Data(AB) => Decimal Data(16706)
                case EnuEQP.StringType.Decimal:
                    dstrReturn = funAscStringConvert(strData, EnuEQP.StringType.Hex);               //ASC를 HEX로 바꾼다.
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.Decimal);              //HEX를 10진수로 바꾼다.
                    break;

                //ASCII Data(AB) => Hex Data(4142)
                case EnuEQP.StringType.Hex:
                    for (int i = 0; i < strData.Length; i++)
                    {
                        char c = Convert.ToChar(strData.Substring(i, 1));
                        dintTemp    = Convert.ToInt32(c);                                    //아스키한문자를 10진수 ASC코드(65)로 변환한다.
                        dstrTemp    = string.Format("{0:X2}", dintTemp);                     //10진수를 2자리를 맞춘 16진수로 바꾼다.
                        dstrReturn += dstrTemp;
                    }
                    break;

                //ASCII Data(AB) => ASC Code(6566)
                case EnuEQP.StringType.ASCCode:
                    for (int i = 0; i < strData.Length; i++)
                    {
                        char c = Convert.ToChar(strData.Substring(i, 1));
                        dintTemp    = Convert.ToInt32(c);                                    //아스키한문자를 10진수 ASC코드로 변환한다.
                        dstrTemp    = string.Format("{0:D2}", dintTemp);                     //10진수를 10진수 2자리 문자로 바꾼다.
                        dstrReturn += dstrTemp;
                    }
                    dstrReturn = strData;
                    break;

                default:
                    dstrReturn = strData;
                    break;
                }
            }
            catch (Exception ex)
            {
                //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData);
                throw (ex);
            }

            return(dstrReturn);
        }
コード例 #2
0
ファイル: FunTypeConversion.cs プロジェクト: k2un/k2un
        /// <summary>
        /// Binary Data 를 원하는 Data 로 바꾸어 준다
        /// </summary>
        /// <param name="strData">Decimal Data(16706)</param>
        /// <param name="StringType">바꾸고자 하는 Type</param>
        /// <returns></returns>
        public static string funBinConvert(string strData, EnuEQP.StringType StringType)
        {
            string dstrReturn = "";
            int    dintTemp   = 0;

            try
            {
                switch (StringType)
                {
                //Binary Data(0100 0001 0100 0010) => Decimal Data(1089)
                case EnuEQP.StringType.Decimal:
                    dstrReturn = funBinConvert(strData, EnuEQP.StringType.Hex);                     //2진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.Decimal);              //HEX를 Decimal로 바꾼다.
                    break;

                //Binary Data(0100 0001 0100 0010) => Hex Data(0441)
                case EnuEQP.StringType.Hex:
                    if (strData.Trim() == "")
                    {
                        strData = "0";
                    }
                    dintTemp   = Convert.ToInt32(strData, 2);                                   //2진수를 10진수로 변환
                    dstrReturn = funDecimalConvert(dintTemp.ToString(), EnuEQP.StringType.Hex); //10진수를 16진수로 변환
                    break;

                //Binary Data(0100 0001 0100 0010) => ASC String(AB)
                case EnuEQP.StringType.ASCString:
                    dstrReturn = funBinConvert(strData, EnuEQP.StringType.Hex);                     //2진수를 16진수¡¡¡œ 변환
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.ASCString);            //HEX를 ASC String으로 바꾼다.
                    break;

                //Binary Data(0100 0001 0100 0010) => ASC Code(6566)
                case EnuEQP.StringType.ASCCode:
                    dstrReturn = funBinConvert(strData, EnuEQP.StringType.Hex);                     //2진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.ASCCode);              //HEX를 ASC Code¡œ 바꾼다.
                    break;

                default:
                    dstrReturn = strData;
                    break;
                }
            }
            catch (Exception ex)
            {
                //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData + ", StringType:" + StringType);
                throw (ex);
            }

            return(dstrReturn);
        }
コード例 #3
0
ファイル: FunTypeConversion.cs プロジェクト: k2un/k2un
        /// <summary>
        /// HEX Data 를 원하는 Data 로 바꾸어 준다
        /// </summary>
        /// <param name="strData">HexData = Hex Data(4142)</param>
        /// <param name="StringType">바꾸고자 하는 Type</param>
        /// <returns></returns>
        public static string funHexConvert(string strData, EnuEQP.StringType StringType)
        {
            string dstrReturn = "";
            string dstrTemp   = "";
            int    dintTemp   = 0;

            try
            {
                switch (StringType)
                {
                //Hex Data(4142) => Binary Data(0100 0010 0100 0001)
                case EnuEQP.StringType.Binary:
                    for (int i = 0; i < strData.Length; i++)
                    {
                        string c = Convert.ToString(strData.Substring(i, 1));
                        dintTemp = Convert.ToInt32(c, 16);                                   //16진수를 10진수로 변환
                        dstrTemp = Convert.ToString(dintTemp, 2);                            //10진수를 2진수로 바꾼다.
                        dstrTemp = string.Format("{0:0000}", Convert.ToInt32(dstrTemp));     //앞에 0이 붙는 4자리의 2진수로 바꾼다.

                        dstrReturn += dstrTemp;
                    }
                    break;

                //Hex Data(4142) => Decimal Data(16706)
                case EnuEQP.StringType.Decimal:
                    dstrTemp   = Convert.ToInt32(strData, 16).ToString();
                    dstrReturn = dstrTemp;
                    break;

                //Hex Data(4142) => ASC String(AB)
                case EnuEQP.StringType.ASCString:
                    for (int i = 0; i < strData.Length; i = i + 2)
                    {
                        string c = Convert.ToString(strData.Substring(i, 2));               //2개씩 끊어 읽어온다.
                        dintTemp = Convert.ToInt32(c, 16);                                  //16진수를 10진수로 변환한다.
                        byte d = Convert.ToByte(dintTemp);                                  //10진수를 Byte형태로 전환
                        dstrTemp = Convert.ToString(Convert.ToChar(d));                     //Byte형태의 10진수를 ASC 문자로 변환한다.
                        if (dstrTemp == "\0")
                        {
                            dstrTemp = " ";
                        }
                        dstrReturn += dstrTemp;
                    }
                    break;

                //Hex Data(4142) => ASC Code(6566)
                case EnuEQP.StringType.ASCCode:
                    for (int i = 0; i < strData.Length; i = i + 2)
                    {
                        string c = Convert.ToString(strData.Substring(i, 2));               //2개씩 끊어 읽어온다.
                        dintTemp    = Convert.ToInt32(c, 16);                               //16진수를 10진수로 변환한다.
                        dstrTemp    = string.Format("{0:D2}", dintTemp);                    //10진수를 10진수 2자리 문자로 바꾼다.
                        dstrReturn += dstrTemp;
                    }
                    break;

                default:
                    dstrReturn = strData;
                    break;
                }
            }

            catch (Exception ex)
            {
                //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData + ", StringType:" + StringType);
                throw (ex);
            }

            return(dstrReturn);
        }
コード例 #4
0
ファイル: FunTypeConversion.cs プロジェクト: k2un/k2un
        /// <summary>
        /// 10진수 Data 를 원하는 Data 로 바꾸어 준다
        /// </summary>
        /// <param name="strData">Decimal Data(16706)</param>
        /// <param name="StringType">바꾸고자 하는 Type</param>
        /// <returns></returns>
        public static string funDecimalConvert(string strData, EnuEQP.StringType StringType)
        {
            string dstrReturn = "";
            string dstrTemp   = "";

            try
            {
                switch (StringType)
                {
                //Decimal Data(16706) => Binary Data(0100 0001 0100 0010)
                case EnuEQP.StringType.Binary:
                    dstrReturn = funDecimalConvert(strData, EnuEQP.StringType.Hex);                 //10진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.Binary);               //HEX를 Bynary로 바꾼다.
                    break;

                //Decimal Data(1089) => Hex Data(0441)
                case EnuEQP.StringType.Hex:
                    if (strData.Contains("-"))
                    {
                        if (strData.Length > 5)
                        {
                            dstrTemp = string.Format("{0:X}", Convert.ToInt64(strData));
                            if (dstrTemp.Length % 8 != 0)
                            {
                                int dintTemp = dstrTemp.Length / 8;
                                dintTemp = dintTemp + 1;

                                dstrTemp = dstrTemp.PadLeft(dintTemp * 8, '0');
                            }
                            dstrTemp = dstrTemp.Substring(4, 4) + dstrTemp.Substring(0, 4);
                        }
                        else
                        {
                            dstrTemp = string.Format("{0:X}", Convert.ToInt32(strData));
                            if (dstrTemp.Length % 4 != 0)
                            {
                                int dintTemp = dstrTemp.Length / 4;
                                dintTemp = dintTemp + 1;

                                dstrTemp = dstrTemp.PadLeft(dintTemp * 4, '0');
                            }
                        }
                    }
                    else
                    {
                        if (strData.Length > 4)
                        {
                            dstrTemp = string.Format("{0:X}", Convert.ToInt64(strData));
                            if (dstrTemp.Length % 8 != 0)
                            {
                                int dintTemp = dstrTemp.Length / 8;
                                dintTemp = dintTemp + 1;

                                dstrTemp = dstrTemp.PadLeft(dintTemp * 8, '0');
                            }
                            dstrTemp = dstrTemp.Substring(4, 4) + dstrTemp.Substring(0, 4);
                        }
                        else
                        {
                            dstrTemp = string.Format("{0:X}", Convert.ToInt32(strData));
                            if (dstrTemp.Length % 4 != 0)
                            {
                                int dintTemp = dstrTemp.Length / 4;
                                dintTemp = dintTemp + 1;

                                dstrTemp = dstrTemp.PadLeft(dintTemp * 4, '0');
                            }
                        }
                    }
                    dstrReturn = dstrTemp;
                    break;

                //Decimal Data(16706) => ASC String(AB)
                case EnuEQP.StringType.ASCString:
                    dstrReturn = funDecimalConvert(strData, EnuEQP.StringType.Hex);                 //10진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.ASCString);            //HEX를 ASC String으로 바꾼다.
                    break;

                //Decimal Data(16706) => ASC Code(6566)
                case EnuEQP.StringType.ASCCode:
                    dstrReturn = funDecimalConvert(strData, EnuEQP.StringType.Hex);                 //10진수를 16진수로 변환
                    dstrReturn = funHexConvert(dstrReturn, EnuEQP.StringType.ASCCode);              //HEX를 ASC Code로 바꾼다.
                    break;

                default:
                    dstrReturn = strData;
                    break;
                }
            }
            catch (Exception ex)
            {
                //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString() + ", strData:" + strData + ", StringType:" + StringType);
                throw (ex);
            }

            return(dstrReturn);
        }