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++; } } }
/// <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()); } }