CSVReader пропускает первую строку - PullRequest
0 голосов
/ 03 мая 2018

Я использую объект CSVReader, но он пропускает первую строку. Есть ли способ предотвратить это?

Мой код:

if (UploadFile.AskExt() == WebDialogResult.OK)
{
    StringBuilder filetext = new StringBuilder();


    PX.SM.FileInfo info = PXContext.SessionTyped<PXSessionStatePXData>().FileInfo["MyFileImportSessionKey"] as PX.SM.FileInfo;

    Byte[] bytes = info.BinData;

    using (CSVReader reader = new CSVReader(bytes, Encoding.ASCII.CodePage))
    {
        reader.Reset();
        filetext.Append("FIRST:" + reader.GetValue(0) + " DONE" + Environment.NewLine);

        while (reader.MoveNext())
        {
            for (int i = 0; i < reader.IndexKeyPairs.Count; i++)
            {
                filetext.Append(reader.GetValue(i));
            }
            filetext.Append(Environment.NewLine);
        }
        System.Web.HttpContext.Current.Session.Remove("MyFileImportSessionKey");
    }

    CurrentDocument.Ask(filetext.ToString(), MessageButtons.OK);
}

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

1 Ответ

0 голосов
/ 03 мая 2018

Заголовок определенно обрабатывается как особый случай.

Я полагаю, что она выставлена ​​в публичной коллекции IndexKeyPairs.

foreach (KeyValuePair<int, string> headerColumn in reader.IndexKeyPairs)
{
   int headerColumIndex = headerColumn.Key;
   string headerColumnCellValue = headerColumn.Value;
}
...