示例#1
0
 public TeaboxDataLine()
 {
     _data               = new List <string>();
     _titles             = new List <string>();
     _type               = TeaboxDataLineType.Data; // Default to data because that is the most common reason for creating a line.
     _comment            = "";
     _unique_instance_id = Guid.NewGuid();
 }
        protected static void ParseLine(string line, bool no_comments,
                                        out string comment, out TeaboxDataLineType type, out string[] data)
        {
            comment = "";
            type    = TeaboxDataLineType.Other;
            data    = new string[0];

            if (!no_comments)
            {
                // Starts with "//"
                if (line.StartsWith(CommentIdentifier))
                {
                    comment = line.Substring(line.IndexOf(CommentIdentifier) + CommentIdentifier.Length);
                    return;
                }

                // Includes " //" or "\t//"
                if (line.Contains(" " + CommentIdentifier) || line.Contains("\t" + CommentIdentifier))
                {
                    comment = line.Substring(line.IndexOf(CommentIdentifier) + CommentIdentifier.Length);
                    line    = line.Substring(0, line.IndexOf(CommentIdentifier));
                }
            }

            line = line.TrimEnd();

            if (line.StartsWith(TitleRowIdentifier))
            {
                type = TeaboxDataLineType.Titles;
                line = line.Substring(TitleRowIdentifier.Length);
            }

            if (line != string.Empty)
            {
                data = new string[1] {
                    line
                }
            }
            ;

            if (line.Contains(DataDelimiter))
            {
                data = line.Split(DataDelimiter.ToCharArray());
            }

            for (int i = 0; i < data.Length; i++)
            {
                data[i] = data[i].Trim();
            }

            if (type != TeaboxDataLineType.Titles && data.Length > 0)
            {
                type = TeaboxDataLineType.Data;
            }
        }
    }
示例#3
0
 public static void SetLineType(TeaboxDataLine line, ref TeaboxDataLineType type)
 {
     line._type = type;
 }
示例#4
0
 public static void PublicParseLine(string line, out string comment
                                    , out TeaboxDataLineType type, out string[] data)
 {
     ParseLine(line, false, out comment, out type, out data);
 }