Синтаксический анализатор/читатель CSV для C#? [закрытый]

Перейдите в строку меню Eclipse, нажмите «Изменить», а затем - «Отменить удаление ресурса». Каждый раз, когда вы нажимаете «Отменить удаление ресурса», он возвращает ресурсы, которые были удалены. Я не уверен, сможете ли вы восстановить удаленные ресурсы, если вы попытаетесь восстановить после перезагрузки компьютера, так как вы удалили свой ресурс.

Вы не хотите сталкиваться с этим несколько раз, чтобы быть в безопасности, всегда используйте контроль версий, такой как Git, SVN, Mercurial.

90
задан Bartosz Radaczyński 25 May 2009 в 14:00
поделиться

6 ответов

70
ответ дан 24 November 2019 в 07:05
поделиться

В CodeProject есть отличная реализация:

Чтобы дать более простые цифры, с 45-мегабайтным CSV-файлом, содержащим 145 полей и 50 000 записей, читатель был обработка около 30 МБ / сек. В общем, на это ушло 1,5 секунды! Технические характеристики машины: P4 3,0 ГГц, 1024 МБ.

53
ответ дан 24 November 2019 в 07:05
поделиться

try filehelpers Работают на удивление хорошо. Я использую его для разбора файла размером 100 МБ каждый день.

7
ответ дан 24 November 2019 в 07:05
поделиться

Вы пробовали библиотеку FileHelpers? Это бесплатно, с открытым исходным кодом и может использоваться для анализа файлов CSV.

4
ответ дан 24 November 2019 в 07:05
поделиться

Я начал использовать CSV Parser, который является частью CommonLibrary.NET.

Он использует .NET 3.5, имеет простой API, удобные перегрузки/методы и лямды для итераций.

У меня нет бенчмарков для него, как выше, но приятно то, что это всего лишь один из компонентов библиотеки, похожей на Java Commons. Таким образом, я также получаю парсер командной строки, реализацию репозитория и многое другое.

3
ответ дан 24 November 2019 в 07:05
поделиться

Вы можете загрузить файл CSV в DataTable.

Пример кода -

static DataTable CsvToDataTable(string strFileName)
{
    DataTable dataTable = new DataTable("DataTable Name");

    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Directory.GetCurrentDirectory() + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\""))
    {
        conn.Open();
        string strQuery = "SELECT * FROM [" + strFileName + "]";
        OleDbDataAdapter adapter = 
            new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
        adapter.Fill(dataTable);
    }
    return dataTable;
}

Убедитесь, что вы скомпилировали свой проект для процессора x86. На x64 не работает.

10
ответ дан 24 November 2019 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: