Bir CSV hattını Rebol bloğuna dönüştürmek için PARSE kullanmaya çalışıyorum. Açık kodda yazmak için yeterince kolay, ama diğer sorularda olduğu gibi, diyalektin ne yapabildiğini öğrenmeye çalışıyorum.Bir CSV'den satır okumak için PARSE lehçesi nasıl kullanılır?
Yani bir çizgi diyorsa: fark
[{Look, that's "MR. Fork" to you!} {Hostile Fork} none {http://hostilefork.com}]
Sorunlar:
"Look, that's ""MR. Fork"" to you!",Hostile Fork,,http://hostilefork.com
Sonra bloğu istiyorum
CSV dizeleri- Gömülü tırnak
""
ile gösterilir
- Virgül tırnak içinde olabilir ve h literal değil, bir sütun ayırıcı ence parçası
- Bitişik sütun ayıran virgül tırnak içermez veya virgül Bir şeyleri tutabilir an için
- tırnaklar olmadan görünebilir yani boş sahadan
- Dizeleri belirtmek STRING olarak
http://rebol.com
gibi! yerine LOAD böyle URL!
daha düzgün hale getirmek için sıra tipe bunları ing, ilk işim giriş hattına virgül eklemek olduğunu. Sonra bir virgül ile sonlandırılan tek bir sütun yakalayan bir column-rule
var, bu da ya tırnak içinde olabilir ya da olmayabilir.
Ben başlık hattına bağlı olması gerektiğini kaç sütun biliyoruz, bu yüzden kod sonra diyor ki:
unless parse line compose [(column-count) column-rule] [
print rejoin [{Expected } column-count { columns.}]
]
Ama biraz column-rule
yazma takılıp değilim. ifade etmek için lehçede bir yol ihtiyacım var "Bir alıntı bulduktan sonra, kendi başına ayakta bir teklif buluncaya kadar alıntı çiftleri atlama tutun." Bunu yapmanın iyi bir yolu nedir?
Verdiğim tuhaf veriler üzerinde çalışmak için (şimdiye kadar) görünen bir yanıt üzerinde harika yanıt süresi! – HostileFork