C# ile CSV Dosyalarını Okumak

C# ile CSV Dosyalarını Okumak

Selamlar. Bu yazının konusu C# ile CSV Dosyalarını Okumak. Basit bir şekilde CSV dosyalarının C# ile nasıl okunacağını bu yazıda görmüş olacağız. Bu yazıdaki örnekte yer alan dataları şu siteden aldım. Bir önceki yazının ardından yeni bir bilgi yazısını sizinle paylaşmak istedim.

C# ile CSV Dosyalarını Okumak

CSV Dosyası Nedir?

(Comma Separated Values) “Virgülle Ayrılmış Değerler” formatıdır. Elektronik olarak hazırlanmış tabloları ya da veritabanlarını temsil eden import ve export biçimidir. Bu dosyalarının en önemli avantajı taşınabilirliktir. Örneğin bu türdeki dosyaları excel ile oluşturdunuz bu dosya daha sonra linux ya da mac sistemlerde yer alan basit metin editörleri ile de açılabilir. Sistemsel bağımlılığı en aza indirgeyerek dataların setler halinde hızlı bir şekilde taşınması amacıyla yani virgülle ayrılmış değerler kullanılıyor.

Günümüzde yapay zeka, makine öğrenmesi, biyogenetik ve benzeri işlemlerde çıkan işlenmemiş veriler bu dosyalarda tutularak istenilen her noktaya taşınabiliyor ve işlenebilir hale geliyor.

C# ile Dosyaları İşleme

Linkini verdiğim sitede 2009 yılına ait satışları tutan bir dosyayı kullandım. Şu an elimizdeki datalar ham yani işlenmemiş durumdalar. Bu veriler işlendiği zaman anlamlı olduğu için verinin türüne göre işleyeceğiz. Bu uygulamayı Windows Form üzerinden anlatacağım. Ancak aynı işlemleri birçok programlama dilinde de gerçekleştirebilirsiniz. Dilden ziyade bu işlemleri yapacağınız dilin o konudaki destek de bir hayli önemli. Bazı istatistik dilleri bu konularda direkt destek sunarken .NET gibi diller direkt native destek sunmuyor.

System.IO Kütüphanesi

Öncelikle indirdiğimiz dosyayı açabilmek için System.IO namespace’i içerisinde yer alan File sınıfına ihtiyacımız var. Bu sınıf dosya okuma, şifreleme, kontrol, kopyalama gibi önemli işlemleri gerçekleştiren ve daha adını saymadığım birçok metodu içerisinde barındırıyor. Ancak şu anda çalıştığımız dosya satırlardan oluşacağı için tüm satırları kolayca bize sunabilecek bir metod işimizi görecektir. Bu metod ReadAllLines metodudur.

Kullanacağımız bu metod overload edilmiş bir metoddur. Varsayılan türü sadece path yani dosya yolunu alır. Eğer dosyanın encoding türünden kuşkunuz varsa diğer parametre Encoding türünden değer alır.

Dosyayı Diziye Aktarma

Dosyada yer alan tüm verileri bir diziye aktaralım. Örneğin şöyle bir dizi yapımız olsun;

Bu yapıda öncelikle tüm dosyayı aldık. Dönen dosyanın ilk satırı sütun başlıklarını içeriyor. Bunu istersek kullanmayabiliriz ama kullanacaksak tüm değerlerimiz columnTitles içerisinde bulunuyor artık. Şimdi basit bir LinQ sorgusu yazalım.

LiNQ Sorgusu

Bu linq sorgusu ilk satırı almamak şartıyla geri kalan tüm satırları getirmeli. O zaman Skip() metodunu kullanarak 1. satırdan başlayacağımızı belirtelim. Ayrıca burada lazım olursa diye çektiğim satırın indexini de alıyorum.

Şu anda istediğimiz her şeye sahibiz. Erişilebilirlik açısından query adındaki listenin birden fazla i ve birden fazla Data elemanı bulunmakta. Data elemanı ayrıca kendi başına string türünden bir array olduğu için erişilebilirlik 2. seviye diziye aktarılıyor.

Verileri DataGridView’da Gösterme

Bu aşamadan sonra verilerin DataGridView üzerinde gösterilmesi önemli. Ben bu yazı için kullanılması adına basit şekilde kullandım.

Buraya kadar olan aşamada herhangi bir hata yapmadıysak eğer şu anda verilerimiz aşağıdaki gibi grid’e yansımış olmalı.

Soru ve görüşleriniz için [email protected] adresine mail atabilirsiniz.

 

C# ile Google Authenticator / Two Factor Authenticator Kullanımı
Up Next:

C# ile App.Config'deki Veriye Ulaşma

C# ile App.Config'deki Veriye Ulaşma