Пропустить первый разделительный символ в CSV - PullRequest
0 голосов
/ 22 октября 2018

У меня есть входной файл CSV, как это:

 |Name|Surname|Age|
 |ABCD|DCBA|11|
 |QAZ|WSX|23|

И когда я пытаюсь загрузить файл CSV в мою таблицу datagridview , у меня первый столбец пуст, потому что функция читаетпервый | разделенный символ.

Как пропустить первый разделенный символ в каждой строке?

Часть кода:

file.ReadLine();
string line = "";
try
{
    while ((line = file.ReadLine()) != null)
    {
        string[] splitArray = line.Split('|');
        Listing.Add(new List(splitArray[0], splitArray[1], splitArray[2]));
        count++;
    }
}
catch
{
    MessageBox.Show("Nothing to do here...");
}
file.Close();

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вы можете передать необязательный второй аргумент StringSplitOptions в RemoveEmptyEntries:

string[] splitArray = line.Split('|', StringSplitOptions.RemoveEmptyEntries);
0 голосов
/ 22 октября 2018

Просто проигнорируйте первый индекс, используя splitArray[1], splitArray[2] и splitArray[3] (игнорируя splitArray[0]):

file.ReadLine();
string line = "";
try
{
    while ((line = file.ReadLine()) != null)
    {
        string[] splitArray = line.Split('|');
        Listing.Add(new List(splitArray[1], splitArray[2], splitArray[3]));
        count++;
    }
}
catch
{
    MessageBox.Show("Nothing to do here...");
}
file.Close();

Как уже указывали другие, почему бы не использовать CsvHelper?

Вы можете сделать это с помощью довольно простой конфигурации:

public struct Listing
{
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }
}

using (var file = File.OpenText("test.txt"))
{
    using (var csv = new CsvHelper.CsvReader(file))
    {
        csv.Configuration.Delimiter = "|";
        var records = csv.GetRecords<Listing>().ToList();

        foreach (var record in records)
        {
            Console.WriteLine("Name: {0}, Surname: {1}, Age: {2}", record.Name, record.Surname, record.Age);
        }
    }
}

Здесь вы можете увидеть пример вывода:

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