PR tree-optimization/82929
[official-gcc.git] / libgo / go / encoding / csv / example_test.go
blobe3c3bd51228633888a7844e83a9a047e2717812a
1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // +build ignore
7 package csv_test
9 import (
10 "encoding/csv"
11 "fmt"
12 "io"
13 "log"
14 "os"
15 "strings"
18 func ExampleReader() {
19 in := `first_name,last_name,username
20 "Rob","Pike",rob
21 Ken,Thompson,ken
22 "Robert","Griesemer","gri"
24 r := csv.NewReader(strings.NewReader(in))
26 for {
27 record, err := r.Read()
28 if err == io.EOF {
29 break
31 if err != nil {
32 log.Fatal(err)
35 fmt.Println(record)
37 // Output:
38 // [first_name last_name username]
39 // [Rob Pike rob]
40 // [Ken Thompson ken]
41 // [Robert Griesemer gri]
44 // This example shows how csv.Reader can be configured to handle other
45 // types of CSV files.
46 func ExampleReader_options() {
47 in := `first_name;last_name;username
48 "Rob";"Pike";rob
49 # lines beginning with a # character are ignored
50 Ken;Thompson;ken
51 "Robert";"Griesemer";"gri"
53 r := csv.NewReader(strings.NewReader(in))
54 r.Comma = ';'
55 r.Comment = '#'
57 records, err := r.ReadAll()
58 if err != nil {
59 log.Fatal(err)
62 fmt.Print(records)
63 // Output:
64 // [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]]
67 func ExampleReader_ReadAll() {
68 in := `first_name,last_name,username
69 "Rob","Pike",rob
70 Ken,Thompson,ken
71 "Robert","Griesemer","gri"
73 r := csv.NewReader(strings.NewReader(in))
75 records, err := r.ReadAll()
76 if err != nil {
77 log.Fatal(err)
80 fmt.Print(records)
81 // Output:
82 // [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]]
85 func ExampleWriter() {
86 records := [][]string{
87 {"first_name", "last_name", "username"},
88 {"Rob", "Pike", "rob"},
89 {"Ken", "Thompson", "ken"},
90 {"Robert", "Griesemer", "gri"},
93 w := csv.NewWriter(os.Stdout)
95 for _, record := range records {
96 if err := w.Write(record); err != nil {
97 log.Fatalln("error writing record to csv:", err)
101 // Write any buffered data to the underlying writer (standard output).
102 w.Flush()
104 if err := w.Error(); err != nil {
105 log.Fatal(err)
107 // Output:
108 // first_name,last_name,username
109 // Rob,Pike,rob
110 // Ken,Thompson,ken
111 // Robert,Griesemer,gri
114 func ExampleWriter_WriteAll() {
115 records := [][]string{
116 {"first_name", "last_name", "username"},
117 {"Rob", "Pike", "rob"},
118 {"Ken", "Thompson", "ken"},
119 {"Robert", "Griesemer", "gri"},
122 w := csv.NewWriter(os.Stdout)
123 w.WriteAll(records) // calls Flush internally
125 if err := w.Error(); err != nil {
126 log.Fatalln("error writing csv:", err)
128 // Output:
129 // first_name,last_name,username
130 // Rob,Pike,rob
131 // Ken,Thompson,ken
132 // Robert,Griesemer,gri