Разделение значения / данных из одного столбца в 3 отдельных столбца в c # .net - PullRequest
1 голос
/ 23 марта 2011

У меня есть некоторая путаница в чтении / отображении файла CSV в datagridview.

Вот ситуация, я читаю CSV-файл, который состоит из 7 данных / столбца / полей подряд.Я пытаюсь отобразить те данные в datagridview, которые содержат 9 столбцов / полей.

Теперь 7 данных / столбцов / полей в CSV-файле содержат значения от 0 до 3 или от 1 до 3. Я хочу разбить данные 7 столбцов / полей в CSV на последние 3 столбца /поле данных

например).7 столбец в поле csv состоит из 123, затем в datagridview это значение в столбце / поле 7 = 1 столбец / поле 8 = 2 и столбец / поле 9 = 3.

Я хочу знать, можно ли разделитьзначение в 3 различных столбца в C # .NET.

Спасибо, Рашабх Шах.

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Я бы создал класс для хранения каждой записи (строки) в вашем CSV.В этом классе представлены девять свойств, которые соответствуют девяти столбцам в вашем DataGridView.Класс будет обрабатывать логику разбиения значений вашего седьмого столбца на восемь и девятый столбцы, как вы описали.

Когда вы читаете в CSV, создаете экземпляры этого класса, помещаете их в список (или другойколлекция) и связать список с DataGridView.

Вот что я имею в виду.Создайте следующий класс:

class Record
{
    public Record(string line) {
        string[] fields = line.Split(',');
        Field1 = fields[0];
        Field2 = fields[1];
        Field3 = fields[2];
        Field4 = fields[3];
        Field5 = fields[4];
        Field6 = fields[5];
        Field7 = fields[6].Substring(0, 1);
        Field8 = fields[6].Substring(1, 1);
        Field9 = fields[6].Substring(2, 1);
    }
    public string Field1 { get; private set; }
    public string Field2 { get; private set; }
    public string Field3 { get; private set; }
    public string Field4 { get; private set; }
    public string Field5 { get; private set; }
    public string Field6 { get; private set; }
    public string Field7 { get; private set; }
    public string Field8 { get; private set; }
    public string Field9 { get; private set; }
}

Перетащите DataGridView на форму и запустите его:

// Create a bunch of Record objects.  Note: r1-f3 = record 1, field 3.
List<Record> recordList = new List<Record> { new Record("r1-f1,r1-f2,r1-f3,r1-f4,r1-f5,r1-f6,123"), 
                                             new Record("r2-f1,r2-f2,r2-f3,r2-f4,r2-f5,r2-f6,456"), 
                                             new Record("r3-f1,r3-f2,r3-f3,r3-f4,r3-f5,r3-f6,789")};
dataGridView1.DataSource = recordList;

Обратите внимание, что это чрезвычайно хрупкий код, и вы захотите сделать практически всепоказать здесь по-разному в производственном приложении.Это показывает, что я имею в виду.

0 голосов
/ 23 марта 2011

Сначала вы получаете данные из файла CSV в таблицу данных, а на следующем шаге вы помещаете цикл и анализируете столбец значений и например: if (dataTable.Row [index] [7] == 123; затем разбить значение на массив, а затем установить значение массива на данные. Таблица

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...