Мне дается большой CSV-файл с очень странным форматированием и именами полей и тому подобное. Скажем, например, у нас есть эти две записи:Возможно ли уметь читать этот, казалось бы, дезорганизованный CSV-файл в C#?
Text18;Text30;Text5;Text6;Text7;Text27;Text14;Text9;Text11;Text19;Text12;Text13;Text24;Text32;Text4;Text34
Supervisor:;Tom Stringer;;;;;;;;;;;;;;
Ethan Whitehouse;;;;;;;;;;;;;;;
;;Date In;;Time In;Date Out;;Time Out;Break Time;;;Total Hrs.;;WageRate;;DLC
Monday;;10/31/2016;8:42 AM;;10/31/2016;;5:41 PM;0.00;Hrs.;8.98;;Hrs.;;33.40;$300.04
;;;;;;Total:;;;;;;;;;
;;;;;;;;0.00;Hrs.;8.98;;Hrs.;;33.40;$300.04
Mark Smalley;;;;;;;;;;;;;;;
;;Date In;;Time In;Date Out;;Time Out;Break Time;;;Total Hrs.;;WageRate;;DLC
Monday;;10/31/2016;8:48 AM;;10/31/2016;;4:10 PM;0.00;Hrs.;7.37;;Hrs.;;29.00;$213.63
;;;;;;Total:;;;;;;;;;
;;;;;;;;0.00;Hrs.;7.37;;Hrs.;;29.00;$213.63
мне нужно быть в состоянии найти (для данного примера) Марк Смолли, и его общее DLC. Так что в основном мне нужен Марк Смолли = $ 213,63. Мне нужно иметь возможность добавлять эти суммы в долларах к массиву. Есть ли хороший способ сделать это? У меня очень мало контроля над тем, как данные форматируются/разделяются.
Похоже, что данные должны быть помещены в формат, который обрабатывает иерархии, такие как XML или JSON. Все, что вы можете сделать, это написать свой собственный код, чтобы разобрать его на основе любых правил. – juharr
Что вы имеете в виду с _ "У меня очень мало контроля над тем, как данные отформатированы/ограничены." _? Если файл csv отличается каждый раз, когда вы его принимаете, я не вижу возможности проанализировать его. –
он вообще не дезорганизован. Попробуйте открыть его в Excel, и вы увидите шаблон. На самом деле, вероятно, это произошло тем, что кто-то просто сохранил таблицу в файле с разделителями. Это не очень хорошая структура, но как только вы видите шаблон, достаточно легко пройти через поля, пока не придете к тем, которые вы хотите. Вам просто нужно указать вашему коду, какие поля искать, они будут находиться в одном и том же месте по отношению друг к другу каждый раз, при условии, что формат файла одинаковый каждый раз, когда вы его получите. – ADyson