2014-11-24 17 views
5

CsvHelper kütüphanesini ve özellikle CsvReader.Read() işlevini kullanırken, boş kayıtları ve/veya boşlukları göz ardı etmenin bir yolu var mı?CsvHelper, CsvReader.Read() kullanırken Whitespace'i nasıl yok sayarsınız?

string[] numaralı ham ürününü iade etmem gerekiyor, ancak kütüphaneyle ayrıştırma yaparken bazı temizleme işlevlerini yapabileceğimi umuyordum.

Github'u kontrol ettim ve CsvReader.Read(), SkipEmptyRecords kullanıyor görünüyor, ancak bu, benim için boş alanım olduğu gibi çalışmıyor.

İşte benim csv dosyası, BOM'siz UTF8'de kodlanmış.

enter image description here

Ben de işe yaramadı ama bir şey kaçırmış durumda sadece ASCII kodlama denedim.
Kimse bilmiyorsa Josh ile sohbet edeceğim ve düzeltmeyle bir git isteği göndereceğim.


Referans:

+1

Bu, SkipEmptyRecords - https://github.com/JoshClose/CsvHelper/blob/master/src/CsvHelper/CsvReader.cs#L177 – Rhumborl

+0

kullanıyor görünüyor. Bunu görmekteyim ama benim için çalışmıyor gibi görünüyor boş boşlukları değil, boşlukları kontrol eder. Soru yansıtılmak üzere değiştirildi. –

cevap

4

http://joshclose.github.io/CsvHelper/ Ben en iyi bahis kütüphaneye kendini düzeltmek için olduğunu düşünüyorum.

sorun Read yöntemi bir alan veya atlamak gerekip gerekmediğini belirlemek için SkipEmptyRecords ayarı ve IsRecordEmpty yöntemi kullanır:

while (this.configuration.SkipEmptyRecords && this.IsRecordEmpty(false)); 

IsRecordEmpty() yöntemi mükemmel desteklemek için uygulanmadı Ancak senin Bu senaryo aşağıdaki senaryoyu kullanır:

Bu, dizeleriniz boş veya boş olmadığından çalışmaz. alan boş olup olmadığını kontrol ederken

csv.Configuration.TrimFields = true; 
csv.Configuration.SkipEmptyRecords = true; 

Ama yine süsleme kullanılmadığından, bu yüzden tek seçenek kütüphane kendiniz gidermek için eminim: Bence teoride işe yarayabilir SkipEmptyRecords ile Kırpma birleştirerek olarak ve kesme işlemini IsRecordEmpty() yönteminde kullanmak VEYA IsNullOrEmpty yerine IsNullOrWhiteSpace kullanın.

+0

Soğuk .. hepimiz için bir düzeltme yapın;) –

+1

Yaparız :-) –

+1

https://github.com/JoshClose/CsvHelper/pull/324 –