csv parsing in Guile Scheme
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Brady McDonough 2151414cdb
Added a *ROOT* element to (csv->sxml)'s return
5 years ago
csv Added a *ROOT* element to (csv->sxml)'s return 5 years ago
.gitignore added new Makefile 11 years ago
AUTHORS Released v0.0.1 13 years ago
COPYING Released v0.0.1 13 years ago
Makefile Changed install target, per 4.7 of the manual 5 years ago
README.md Changed README to reflect changes to make install 5 years ago
pkg-list.scm simplified install stuffs 11 years ago

README.md

guile-csv

Guile csv reader

USAGE

install

$make $sudo make install

read csv

(use-modules (csv csv))
(define my-csv-reader (make-csv-reader #:\,))
(call-with-input-file "file.csv" my-csv-reader)

csv->xml

(call-with-input-file "file.csv" csv->xml)

and result could be:

<record-0>
 <name>aaa</name>
 <age>11</age>
 <email>aaa@aaa.com</email>
</record-0>
<record-1>
 <name>bbb</name>
 <age>12</age>
 <email>bbb@bbb.com</email>
</record-1>

sxml->csv or csv-write to output a csv format file

(call-with-output-file "file.csv"
 (lambda (port)
  (sxml->csv 
   '((name age email) ("aaa" "11" "aaa@aaa.com") ("bbb" "12" "bbb@bbb.com"))
   port)))

and file.csv would be:

name,age,email
aaa,11,aaa@aaa.com
bbb,12,bbb@bbb.com

Enjoy!