Beispiel #1
0
 public static List<FormatInfo> TemplateToFormatInfoList(string template)
 {
     var tempDict = new List<FormatInfo>();
     var templateIndex = 0;
     if (char.IsDigit(template[templateIndex]))
     {
         var fInfo = new FormatInfo()
         {
             FormatType = 'b'
         };
         var ctBuf = "";
         while (templateIndex < template.Length && char.IsDigit(template[templateIndex]))
         {
             ctBuf += template[templateIndex++];
         }
         fInfo.ArrLenArg = int.Parse(ctBuf);
         tempDict.Add(fInfo);
     }
     else
     {
         while (templateIndex < template.Length)
         {
             var ctBuf = "";
             var fInfo = new FormatInfo()
             {
                 FormatType = template[templateIndex++]
             };
             while (templateIndex < template.Length)
             {
                 if (char.IsDigit(template[templateIndex]))
                 {
                     ctBuf = "";
                     while (templateIndex < template.Length && char.IsDigit(template[templateIndex]))
                     {
                         ctBuf += template[templateIndex++];
                     }
                     fInfo.ArrLenArg = int.Parse(ctBuf);
                 }
                 else if (template[templateIndex] == '!')
                 {
                     ctBuf = "";
                     templateIndex++;
                     while (templateIndex < template.Length && char.IsDigit(template[templateIndex]))
                     {
                         ctBuf += template[templateIndex++];
                     }
                     fInfo.FormatArgs.Add(int.Parse(ctBuf));
                 }
                 else if (template[templateIndex] == '(')
                 {
                     ctBuf = "";
                     templateIndex++;
                     while (templateIndex < template.Length && template[templateIndex] != ')')
                     {
                         ctBuf += template[templateIndex++];
                     }
                     templateIndex++;
                     fInfo.NumberFormat = ctBuf;
                 }
                 else
                 {
                     break;
                 }
             }
             tempDict.Add(fInfo);
         }
     }
     return tempDict;
 }
Beispiel #2
0
        public static List <FormatInfo> TemplateToFormatInfoList(string template)
        {
            var tempDict      = new List <FormatInfo>();
            var templateIndex = 0;

            if (char.IsDigit(template[templateIndex]))
            {
                var fInfo = new FormatInfo()
                {
                    FormatType = 'b'
                };
                var ctBuf = "";
                while (templateIndex < template.Length && char.IsDigit(template[templateIndex]))
                {
                    ctBuf += template[templateIndex++];
                }
                fInfo.ArrLenArg = int.Parse(ctBuf);
                tempDict.Add(fInfo);
            }
            else
            {
                while (templateIndex < template.Length)
                {
                    var ctBuf = "";
                    var fInfo = new FormatInfo()
                    {
                        FormatType = template[templateIndex++]
                    };
                    while (templateIndex < template.Length)
                    {
                        if (char.IsDigit(template[templateIndex]))
                        {
                            ctBuf = "";
                            while (templateIndex < template.Length && char.IsDigit(template[templateIndex]))
                            {
                                ctBuf += template[templateIndex++];
                            }
                            fInfo.ArrLenArg = int.Parse(ctBuf);
                        }
                        else if (template[templateIndex] == '!')
                        {
                            ctBuf = "";
                            templateIndex++;
                            while (templateIndex < template.Length && char.IsDigit(template[templateIndex]))
                            {
                                ctBuf += template[templateIndex++];
                            }
                            fInfo.FormatArgs.Add(int.Parse(ctBuf));
                        }
                        else if (template[templateIndex] == '(')
                        {
                            ctBuf = "";
                            templateIndex++;
                            while (templateIndex < template.Length && template[templateIndex] != ')')
                            {
                                ctBuf += template[templateIndex++];
                            }
                            templateIndex++;
                            fInfo.NumberFormat = ctBuf;
                        }
                        else
                        {
                            break;
                        }
                    }
                    tempDict.Add(fInfo);
                }
            }
            return(tempDict);
        }