public virtual void Parse(string sTxt, string sTagDelimiter, string sTagDataDelimiter, string sTagSubDataDelimiter)
        {
            LastErrorTagIndex = -1;
            LastError         = "";

            m_aTags.Clear();

            string [] asTagDelim = { sTagDelimiter };
            string [] asTags     = sTxt.Split(asTagDelim, StringSplitOptions.RemoveEmptyEntries);

            foreach (string sTag in asTags)
            {
                string [] asTagDataDelim = { sTagDataDelimiter };
                string [] asTagDatas     = sTag.Split(asTagDataDelim, StringSplitOptions.RemoveEmptyEntries);

                RscTextTag tt = new RscTextTag();
                m_aTags.Add(tt);

                string [] asTagSubDataDelim = { sTagSubDataDelimiter };
                tt.m_asLeft = asTagDatas[0].Split(asTagSubDataDelim, StringSplitOptions.RemoveEmptyEntries);

                if (asTagDatas.Length > 1)
                {
                    tt.m_asRight = asTagDatas[1].Split(asTagSubDataDelim, StringSplitOptions.RemoveEmptyEntries);
                }
            }
        }
Beispiel #2
0
        protected string DeCodeValue(RscTextTag tt)
        {
            string sRet = "";

            int iCount = tt.m_asRight.Length;

            for (int i = 0; i < iCount; i++)
            {
                string sVal = "";

                sVal = tt.m_asRight[i];

                if (tt.LeftIndexOf("ENCODING=QUOTED-PRINTABLE") >= 0)
                {
                    sVal = RscDecode.QuotedPrintable(sVal);
                }

                if (tt.LeftIndexOf("ENCODING=8BIT") >= 0)
                {
                    //NOP...
                }
                else
                {
                    if (tt.LeftIndexOf("CHARSET=UTF-8") >= 0)
                    {
                        if (sVal.Length > 0)
                        {
                            char [] acVal = sVal.ToCharArray();
                            byte [] ay    = new byte [acVal.Length];
                            for (int j = 0; j < acVal.Length; j++)
                            {
                                ay[j] = ((byte)(acVal[j]));
                            }
                            sVal = Encoding.UTF8.GetString(ay, 0, ay.Length);
                        }
                    }
                }

                if (sVal.Length > 0)
                {
                    if (sRet.Length > 0)
                    {
                        sRet += " ";
                    }
                    sRet += sVal;
                }
            }

            return(sRet);
        }