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  }