Short question: otomatik olarak nasıl bir CSV dosyası ilk satırda başlıkları olup olmadığını tespit ediyorsunuz?
Detay: I (yaklaşık) bir bellek veri tabanı olarak erişebilir bir nesnenin içine veri yerleştirir küçük bir CSV ayrıştırma motoru yazdık. Orijinal kod öngörülebilir bir format ile üçüncü parti CSV ayrıştırmak için yazılmıştı, ama daha genel olarak bu kodu kullanmak için muktedir istiyorum.
Ben otomatik olarak CSV başlıkların varlığını tespit etmek için güvenilir bir yol anlamaya çalışıyorum, bu yüzden komut tuşları / sütun adları olarak CSV dosyasının ilk satırını kullanabilirsiniz ya da hemen veri ayrıştırma başlatmak için karar verebilirsiniz. Ben gereken her bir mantıksal bir test olduğundan, kolayca CSV kendimi dosyasını inceledikten sonra bir argüman belirtmek olabilir, ama ben daha ziyade (otomasyon go go) için olurdu değil.
Ben ilk 3 ayrıştırmak gerekiyor hayal? CSV satırları dosya ve başlıklarına karşı karşılaştırmak için bazı tür bir desen arayın. Ben üç özellikle kötü durumlarda kabuslar görüyorum:
- Başlıklar nedense sayısal verileri içerir
- Ilk birkaç satır (veya CSV büyük kısımları) null
- Orada başlıkları ve veri ayrı anlatmak çok benzer
Ben bir "en iyi tahmin" almak ve ayrıştırıcı bir hata ile başarısız ya da karar olamaz eğer bir uyarı tükürmek olabilir, bu tamam. Bu mutlulukla fikir hurda ve geri "önemli şeyler" üzerinde çalışmaya gideceğim zaman ya da hesaplama açısından son derece pahalı olması (ve beni kurtarmak için gerekenden daha fazla zaman alır) için gidiyor bir şey varsa.
PHP ile çalışıyorum, ama bu uygulama özel bir şeye daha bir algoritmik / hesaplama soru daha beni vurur. Basit bir algoritma varsa ben, büyük kullanabilirsiniz. Eğer bazı ilgili teori / tartışmaya beni işaret edebilir, bu çok büyük olurdu. Doğal dil işleme ve çözümleme 300 farklı türde yapan dev bir kütüphane varsa, ben ilgilenmiyorum.