# ООП. Основы (CSV) На чемпионате **WorldSkills** часто возникает ситуация, когда нужно загрузить данные в базу программно, поэтому нужно уметь делать это быстро и просто. Подробнее мы остановимся на этом курсе "Проектирование и разработка ИС", но тренироваться использовать загрузку данных из CSV будем на лабораторных работах и в этом курсе. Файл с данными нужно положить в каталог `bin/debug` вашего проекта, либо указать полный путь к нему ```csv Акесов,18 Андреев,19 ``` ```cs class Peoples{ string Name; int Age; } ... var Peoples = new List(); // считываем данные из файла (файл лежит рядышком с .exe) string[] data = File.ReadAllLines("ваш файл.csv"); // проходим в цикле по считанным строкам foreach (var line in data) { // разделяем каждую строку на массив строк с указанием символа разделителя var values = line.Split(','); Peoples.Add( new People { Name=values[0], Age=Convert.ToInt32(values[1]) }); } ``` ## Примечания 1. Дату в CSV желательно хранить в формате `YYYY-MM-DD` (SQL-формат). Такой формат нормально преобразуется в класс **Data** (**DataTime**) штатным конвертером. Иначе придется разбирать строку даты на составные части (функцией _split_) и создавать дату из этих частей (`new Date(year, month, day)`) 2. В качестве разделителя дробной части в числах с плавающей запятой (**float**, **double**) в CSV обычно используется точка. Но конвертер использует настройки локальной среды, а для России в качестве разделителя задана запятая, поэтому конвертер не может разобрать строку с точкой и выбрасывает исключение. В этом случае можно либо заменить точки на запятые в CSV файле (но в таком случае и разделителем полей должен быть другой знак), либо в конвертер передать дополнительный параметр, явно указывающий разделитель для дробной части: ```cs Convert.ToDouble("113.12", new NumberFormatInfo(){NumberDecimalSeparator="."}); ``` # Задача * сформировать файл с данными в формате CSV для вашей предметной области * загрузить данные с программу из подготовленного файла