예제 #1
0
        internal void Load()
        {
            using (StreamReader sr = new StreamReader(_dataFilePath))
            {
                CsvLineReader reader = new CsvLineReader(sr);
                _columns = reader.ReadAndValidate();
                if (_columns.Count == 0)
                {
                    throw new Exception("Файл данных из настройки конфигурации TestPlan.DataCsvFile должен содержать в первой строке названия колонок, разделённые символом \";\"");
                }

                SetColumnDictionary();

                int rowIndex = 0;
                while (!sr.EndOfStream)
                {
                    List <string> data = reader.ReadAndValidate();
                    if (data.Count > _columns.Count)
                    {
                        data.RemoveRange(_columns.Count, data.Count - _columns.Count);
                    }
                    else if (data.Count < _columns.Count)
                    {
                        for (int i = data.Count; i < _columns.Count; i++)
                        {
                            data.Add("");
                        }
                    }

                    _data.Add(new DataSourceRow(_columns, _columnDictionary, data, rowIndex + 1));
                    rowIndex++;
                }
            }
        }
예제 #2
0
 /// <summary>
 /// Производит разбор одной записи
 /// </summary>
 /// <param name="record">Запись</param>
 /// <returns></returns>
 public static List <string> ParseRecord(string record)
 {
     using (StringReader sr = new StringReader(record))
     {
         CsvLineReader reader = new CsvLineReader(sr);
         return(reader.ReadAndValidate());
     }
 }