Thanks for the reply. In this instance, what's the syntax for map? I'm trying in REPL and getting a wrong number of arguments (1) passed to core$map.
On Jun 17, 7:11 am, Ken Wesson <kwess...@gmail.com> wrote: > On Thu, Jun 16, 2011 at 6:07 PM, octopusgrabbus > > > > > > > > > > <octopusgrab...@gmail.com> wrote: > > This Clojure program: > > > ns test-csv > > (:require [clojure.contrib.string :as str]) > > (:import (java.io BufferedReader FileReader StringReader)) > > (:use clojure-csv.core)) > > > (defn process-file [file-name] > > (with-open [br (BufferedReader. (FileReader. file-name))] > > (println (line-seq br)))) > > > (defn -main [& args] > > (process-file "resultset.csv")) > > > is printing a test file. I believe line-seq returns a sequence of > > strings. I am having trouble figuring out where to call str/split. The > > error I'm getting back is you can cast to a regular expression. Any > > thoughts? > > The split function takes a regular expression for its split-with-this > argument, rather than a regular string. In many cases simply changing > a string literal to a regex literal will do, e.g. with CSV splitting > "," to #",". > > If you (map #(split...) (line-seq foo)) on your CSV data you'll end up > with a seq of seqs of strings, each outer seq a row and each inner seq > the cells of that row. If there are escaped embedded commas in some of > the cell value strings they'll still be escaped, however it is that > they are escaped, though, so you might want to put the whole thing > through (map #(map unescape %) outer-seq) to unescape everything after > the splitting; implementing the unescape function is left as an > exercise for the reader. :) > > Note that all of this stuff is lazy, so you'll want to keep the reader > open until you've done processing everything and have a result to > return, and if the result is a seq it may need doall called on it > first depending on how it is constructed. On the other hand this means > you can fairly transparently work with CSV files larger than main > memory. > -- > Some people, when confronted with a problem, think “I know, I'll use > regular expressions.” > Now they have two problems. > - Jamie Zawinski -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en