Public.Standards.CSV
This module was made following http://en.wikipedia.org/wiki/Comma-separated_values The examples shown below use the sample CSV file provided by the fore-mentionned documentation. 1 Files Public.Standards.CSV.FILE() inherits from the buffered Stdio.FILE() class. It sports two important methods: * int write_row(mixed... row) * int|array read_row() 1.1 Reading The method-way: {code} object infile = Public.Standards.CSV.FILE("/tmp/sample.csv", "r"); infile->read_row(); (1) Result: ({ /* 5 elements */ "1997", "Ford", "E350", "ac, abs, moon", "3000.00" }) {code} The iterator-way: {code} object infile = Public.Standards.CSV.FILE("/tmp/sample.csv", "r"); foreach(infile; int line_number; array data) { //... } {code} 1.1 Writing {code} object outfile = Public.Standards.CSV.FILE("/tmp/foo.csv", "cw"); outfile->write_row("foo","bar","baz"); (1) Result: 13 {code} 1 String Public.Standards.CSV.CSVString() deals with string. As a side note, the name Public.Standards.CSV.String() was originally chosen for consistency, but produced unexpected results i didn't managed to overcome. Anyone with a clue here is welcomed. Public.Standards.CSV.CSVString() work the very same way than Public.Standards.CSV.FILE() 1.1 Reading The method way: {code} object data = Public.Standards.CSV.CSVString(Stdio.read_bytes("/tmp/sample.csv")); data->read_row(); (3) Result: ({ /* 5 elements */ "1997", "Ford", "E350", "ac, abs, moon", "3000.00" }) {code} The iterator way: {code} object instring = Public.Standards.CSV.CSVString(Stdio.read_bytes("/tmp/sample.csv")); foreach(instring; int line_number; array dara) { // ... } {code} 1.1 Writing Public.Standards.CSV.CSVString() doesn't support writing for now. Powered by PikeWiki2 |
|||
gotpike.org | Copyright © 2004 - 2009 | Pike is a trademark of Department of Computer and Information Science, Linköping University |