Пример #1
0
        /// <summary>
        /// Reads the apsim header lines.
        /// </summary>
        /// <param name="inData">The in.</param>
        /// <param name="constantLines">The constant lines.</param>
        /// <param name="headingLines">The heading lines.</param>
        private void ReadApsimHeaderLines(StreamReaderRandomAccess inData,
                                          ref StringCollection constantLines,
                                          ref StringCollection headingLines)
        {
            string PreviousLine = "";

            while (!inData.EndOfStream)
            {
                string Line      = inData.ReadLine();
                int    PosEquals = Line.IndexOf('=');
                if (PosEquals != -1)
                {
                    // constant found.
                    constantLines.Add(Line);
                }
                else
                {
                    if (IsCSVFile)
                    {
                        headingLines.Add(Line);
                        break;
                    }

                    char[] whitespace           = { ' ', '\t' };
                    int    PosFirstNonBlankChar = StringUtilities.IndexNotOfAny(Line, whitespace);
                    if (PosFirstNonBlankChar != -1 && Line[PosFirstNonBlankChar] == '(')
                    {
                        headingLines.Add(PreviousLine);
                        headingLines.Add(Line);
                        break;
                    }
                }
                PreviousLine = Line;
            }
        }