示例#1
0
        List<string[]> ReadCsvFile(string path, int expectedFieldsCount) {
            var result = new List<string[]>();

            var unexpectedNum = 0;

            try {
                Log("Загрузка файла {0}...", path);

                using(var reader = new CsvFileReader(path)) {
                    var cols = new List<string>();

                    while(reader.ReadRow(cols)) {
                        if(cols.Count == 0) continue;

                        if(cols.Count != expectedFieldsCount) {
                            ++unexpectedNum;
                            Log("WARNING: Неожиданное количество колонок - {0}. Строка проигнорирована:\n{1}", cols.Count, string.Join(";", cols));
                            continue;
                        }

                        result.Add(cols.ToArray());
                    }
                }
            } catch(Exception e) {
                Log("Ошибка загрузки CSV: {0}", e);
                return result;
            }

            if(unexpectedNum > 0) {
                Log("WARNING: {0} строк содержали неверное количество столбцов. Ожидалось {1}.", unexpectedNum, expectedFieldsCount);
            }

            Log("Загружено {0} строк.", result.Count);

            return result;
        }