SultanC
  1. Home
  2. Examples
  3. Data formats

Reading CSV records and fields, including a quoted field with a comma

formats/csv.sn
// Reading CSV records and fields, including a quoted field with a comma.
import std.io.println;
import std.text.number;
import std.csv.csv;

def main(): int {
    let source: string = "name,city\nNoor,\"Riyadh, KSA\"\nAdam,Toronto\n";
    match parse_csv(&source) with
    | result.err(_) -> { println("invalid csv"); return 1; }
    | result.ok(document) -> {
        println(uint_to_text(csv_record_count(&document)));
        match csv_record_at(&document, 1) with
        | option.none -> { return 2; }
        | option.some(record) -> {
            println(uint_to_text(csv_field_count(&record)));
            match csv_field_at(&record, 1) with
            | option.some(city) -> { println(city); }
            | option.none -> { };
        };
    };
    return 0;
}

Run it

With the interpreter, without compiling:

./build/sultanc run examples/en/formats/csv.sn

Or compile it to an executable:

./build/sultanc examples/en/formats/csv.sn -o build/example && ./build/example

Source on GitHub   All examples