| MissingH-1.1.0.3: Large utility library | Source code | Contents | Index
Data.CSV |
Portability | portable
Stability | provisional
Maintainer | John Goerzen <jgoerzen@complete.org>
Description
Haskell Parsec parsers for comma-separated value (CSV) files. Written by John Goerzen, jgoerzen@complete.org
Synopsis
csvFile :: CharParser st [[String]]
genCsvFile :: [[String]] -> String
Documentation
csvFile :: CharParser st [[String]] | Source
Parse a Comma-Separated Value (CSV) file. The return value is a list of lines; each line is a list of cells; and each cell is a String. Please note that CSV files may have a different number of cells on each line. Also, it is impossible to distinguish a CSV line that has a call with no data from a CSV line that has no cells. Here are some examples:
    Input (literal strings)          Parses As (Haskell String syntax)
    -------------------------------- ---------------------------------
    1,2,3                            [["1", "2", "3"]]

    l1                               [["l1"], ["l2"]]
    l2

     (empty line)                    [[""]]

    NQ,"Quoted"                      [["NQ", "Quoted"]]

    NQ,"Embedded""Quote"             [["NQ", "Embedded\"Quote"]]
To parse a String, you might use:
    import Text.ParserCombinators.Parsec
    import Data.String.CSV
    ....
    parse csvFile "" mystring
To parse a file, you might instead use:
    do result <- parseFromFile csvFile "/path/to/file"
Please note that the result of parsing will be of type (Either ParseError [[String]]). A Left result indicates an error. For more details, see the Parsec information.
genCsvFile :: [[String]] -> String | Source
Generate CSV data for a file. The resulting string can be written out to disk directly.
Produced by Haddock version 2.4.2