A DotNet Raider

My adventures in the .NET world!
posts - 38, comments - 15, trackbacks - 0

My Links

News

Website View Martino Bordin's profile on LinkedIn XBOX 360 AVATAR - BORD1986
Locations of visitors to this page

Archives

Post Categories

Arch

BlogRoll

Codeplex

Google code

MSDN

Sites

Parsing di file CSV

Molte volte capita di dover effettuare il parsing di file CSV.

L’implementazione può diventare complessa a piacere (basti pensare all’escape dei caratteri, personalizzazione dei delimitatori, etc) e per questo esistono già librerie che ci permettono di effettuare questa operazione facilmente.

Non tutti sanno (ecco il perchè di questo post) che il framework .NET fornisce già questa funzionalità .

La classe in questione è TextFieldParser, contenuto nell’assembly Microsoft.VisualBasic.

using (TextFieldParser parser = new TextFieldParser(@"C:\temp\sample.csv"))
            {
                parser.CommentTokens = new[] { "#" };
                parser.SetDelimiters(";");
                parser.HasFieldsEnclosedInQuotes = true;

                // Skip over header line.
                //parser.ReadLine();

                while (!parser.EndOfData)
                {
                    string[] fields = parser.ReadFields();
                    if (fields != null)
                    {
                        var specificCulture = System.Globalization.CultureInfo.CreateSpecificCulture("it-IT");
                        var foo = new 
                        {
                            Field1 = fields[0],
                            Field2 = int.Parse(fields[1], specificCulture),
                            Field3 = double.Parse(fields[1], specificCulture),
                            Field4 = DateTime.Parse(fields[1], specificCulture),
                        };
                    }
                }
            }

Print | posted on Thursday, October 22, 2015 3:51 PM |

Feedback

Gravatar

# re: Parsing di file CSV

Personalmente sviluppo in C# e non mi piace dover includere la libreria di Visual Basic solo per questo motivo.
Da Nuget ci sono tanti pacchetti che fanno la stessa cosa come CsvHelper.
10/26/2015 12:18 PM | Emanuele
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET