github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/third_party/gofrontend/libgo/go/encoding/csv/example_test.go (about) 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. 4 5 // +build ignore 6 7 package csv_test 8 9 import ( 10 "encoding/csv" 11 "fmt" 12 "io" 13 "log" 14 "os" 15 "strings" 16 ) 17 18 func ExampleReader() { 19 in := `first_name,last_name,username 20 "Rob","Pike",rob 21 Ken,Thompson,ken 22 "Robert","Griesemer","gri" 23 ` 24 r := csv.NewReader(strings.NewReader(in)) 25 26 for { 27 record, err := r.Read() 28 if err == io.EOF { 29 break 30 } 31 if err != nil { 32 log.Fatal(err) 33 } 34 35 fmt.Println(record) 36 } 37 // Output: 38 // [first_name last_name username] 39 // [Rob Pike rob] 40 // [Ken Thompson ken] 41 // [Robert Griesemer gri] 42 } 43 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" 52 ` 53 r := csv.NewReader(strings.NewReader(in)) 54 r.Comma = ';' 55 r.Comment = '#' 56 57 records, err := r.ReadAll() 58 if err != nil { 59 log.Fatal(err) 60 } 61 62 fmt.Print(records) 63 // Output: 64 // [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]] 65 } 66 67 func ExampleReader_ReadAll() { 68 in := `first_name,last_name,username 69 "Rob","Pike",rob 70 Ken,Thompson,ken 71 "Robert","Griesemer","gri" 72 ` 73 r := csv.NewReader(strings.NewReader(in)) 74 75 records, err := r.ReadAll() 76 if err != nil { 77 log.Fatal(err) 78 } 79 80 fmt.Print(records) 81 // Output: 82 // [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]] 83 } 84 85 func ExampleWriter() { 86 records := [][]string{ 87 {"first_name", "last_name", "username"}, 88 {"Rob", "Pike", "rob"}, 89 {"Ken", "Thompson", "ken"}, 90 {"Robert", "Griesemer", "gri"}, 91 } 92 93 w := csv.NewWriter(os.Stdout) 94 95 for _, record := range records { 96 if err := w.Write(record); err != nil { 97 log.Fatalln("error writing record to csv:", err) 98 } 99 } 100 101 // Write any buffered data to the underlying writer (standard output). 102 w.Flush() 103 104 if err := w.Error(); err != nil { 105 log.Fatal(err) 106 } 107 // Output: 108 // first_name,last_name,username 109 // Rob,Pike,rob 110 // Ken,Thompson,ken 111 // Robert,Griesemer,gri 112 } 113 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"}, 120 } 121 122 w := csv.NewWriter(os.Stdout) 123 w.WriteAll(records) // calls Flush internally 124 125 if err := w.Error(); err != nil { 126 log.Fatalln("error writing csv:", err) 127 } 128 // Output: 129 // first_name,last_name,username 130 // Rob,Pike,rob 131 // Ken,Thompson,ken 132 // Robert,Griesemer,gri 133 }