Я знаю, что есть несколько библиотек кода, которые могут разбирать CSV-файлы в соответствии со стандартом, но по разным причинам мне нужна одна простая процедура (а не целая библиотека), которая анализирует CSV в DataTable или массив. Существует ли такое животное или оно исчезло? (Предпочтительно C#, но я могу перевести и vb.net)CSV Parser в одной рутине/функции?
ответ
Напишите свой собственный метод, который проходит через каждую строку и использует метод split, используя запятую в качестве разделителя.
Если вы хотите, чтобы разобрать CSV с помощью LINQ, вот простой пример:
http://www.fryan0911.com/2009/05/read-data-from-csv-using-linq.html
Но см. Http://www.secretgeek.net/csv_trouble. асс первым! –
... и затем используйте поддержку CSV, встроенную в платформу .NET, и поддерживаемую Microsoft. http://stackoverflow.com/questions/2405787/csv-parser-in-one-routine-function/2405898#2405898 – MarkJ
Reference Microsoft.VisualBasic.FileIO
и вы можете использовать TextFieldParser
using (var parser =
new TextFieldParser(@"c:\data.csv")
{
TextFieldType = FieldType.Delimited,
Delimiters = new string[] { "," }
})
{
while (!parser.EndOfData)
{
string[] fields;
fields = parser.ReadFields();
//go go go!
}
}
Дать свой собственный CSV парсер не легко. Есть много крайних случаев, с которыми вы столкнетесь.
Read: http://www.secretgeek.net/csv_trouble.asp
@ ответ Спендера, вероятно, ближе вы получите, используя встроенный в материал.
Дайте CsvHelper попытку (библиотека, которую я поддерживаю). Он доступен на NuGet. Это очень легкий вес. Если вы просто хотите немного кода, вы можете просто скопировать источник CsvParser.cs и немного изменить его. Существует, в основном, одна функция, которая выполняет весь синтаксический анализ, который составляет более 100 строк, включая комментарии. Если вам нужна единая рутина, это было бы неплохо схватить.
Если вы используете библиотеку CsvHelper, чтение в коллекции пользовательских объектов класса легко.
var streamReader = // Create StreamReader to your CSV file.
var csvReader = new CsvReader(streamReader);
var myObjects = csvReader.GetRecords<MyObject>();
- 1. Узел CSV Parser
- 2. Java csv parser/writer
- 3. CSV Parser через angularJS
- 4. iPhone: сложный CSV Parser
- 5. AWK: Рекурсивный спуск CSV Parser
- 6. Commercial .NET CSV Parser/Library
- 7. Google Adwords CSV File Parser
- 8. Parser в Python, CSV в Excel
- 9. Csv parser - Оценить заголовок для каждого файла
- 10. Parser одной строки XML в прошивкой
- 11. Parser только для захвата заголовков столбцов CSV
- 12. как написать java csv parser using opencsv
- 13. csv stream parser (papaparse) блокирует рендер?
- 14. Крошка Csv Parser - Разбирает отрицательный Int
- 15. Разбор одной строки CSV?
- 16. Groovy csv parser и экспорт в базу данных
- 17. Как использовать (установить) Swift csv parser в проекте Swift
- 18. Как создавать динамические столбцы (MACROS) в Syslog-ng csv-parser
- 19. Преобразование xml в csv с использованием java sax parser
- 20. Форматирование одной строки как CSV
- 21. Обработка одной строки файла csv
- 22. Удаление одной строки из CSV
- 23. Текст Parser в Python
- 24. python writelines в одной ячейке csv
- 25. Как преобразовать CSV в столбцы одной строки?
- 26. Невозможно записать более одной строки в CSV
- 27. python писать более одной строки в csv
- 28. CSV файл возвращается в виде одной строки
- 29. Expat Parser vs Dom Parser в php
- 30. Различия в производительности между использованием F # Data CSV Type Provider vs CSV Parser и Reader
Мне любопытно, что вы подразумеваете под «стандартом». Насколько мне известно, для CSV нет стандарта. Именно поэтому вы не должны пытаться закодировать свой собственный парсер - вы не хотите быть тем, кто имеет дело с неустранимым CSV всех остальных, пусть кто-то другой это сделает. Какие «различные причины» оправдывают себя, беря на себя это бремя? – Aaronaught
[Лучшие 6 способов разобрать .CSV? Высокая производительность!] (Http://izlooite.blogspot.com/2011/06/top-6-ways-to-parse-csv-high.html) –