Acquarella.Configuration.TextConfiguration.Load C# (CSharp) Method

Load() private method

private Load ( string lines ) : void
lines string
return void
        private void Load(string[] lines)
        {
            bool intextbegin = false;
            bool intextend = false;
            IList<string> textbegin = new List<string>();
            IList<string> textend = new List<string>();

            foreach (var item in lines)
            {
                string line = item.Trim();

                if (string.IsNullOrEmpty(line))
                    continue;

                if (line[0] == '#')
                    continue;

                string[] words = line.Split(' ', '\t');
                string typename = words[0];

                if (!intextbegin && !intextend)
                {
                    if (typename.Equals("text", StringComparison.InvariantCultureIgnoreCase))
                    {
                        intextbegin = true;
                        continue;
                    }

                    System.Enum.Parse(typeof(TokenType), typename);

                    string format = line.Substring(typename.Length).Trim();

                    this.SetFormat(typename, format);
                }
                else if (intextbegin)
                {
                    if (words.Length == 1 && typename == "...")
                    {
                        intextbegin = false;
                        intextend = true;
                        continue;
                    }

                    if (words.Length == 1 && typename.Equals("end", StringComparison.InvariantCultureIgnoreCase))
                    {
                        intextbegin = false;
                        intextend = false;
                        continue;
                    }

                    textbegin.Add(item);
                }
                else if (intextend)
                {
                    if (words.Length == 1 && typename.Equals("end", StringComparison.InvariantCultureIgnoreCase))
                    {
                        intextbegin = false;
                        intextend = false;
                        continue;
                    }

                    textend.Add(item);
                }
            }

            string tbegin = string.Empty;
            string tend = string.Empty;

            foreach (var line in textbegin)
                tbegin += line + "\r\n";

            foreach (var line in textend)
                tend += line + "\r\n";

            if (textend.Count == 0 && textbegin.Count > 0)
                this.SetFormat("Text", tbegin);
            else if (textend.Count > 0 && textbegin.Count > 0)
            {
                this.SetFormat("TextBegin", tbegin);
                this.SetFormat("TextEnd", tend);
            }
        }

Same methods

TextConfiguration::Load ( string name ) : TextConfiguration

Usage Example

Example #1
0
 public static TextConfiguration LoadFromFile(string filename)
 {
     var result = new TextConfiguration();
     result.Load(File.ReadAllLines(filename));
     return result;
 }