mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			134 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
// Copyright 2015 The Go Authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a BSD-style
 | 
						|
// license that can be found in the LICENSE file.
 | 
						|
 | 
						|
// +build ignore
 | 
						|
 | 
						|
package csv_test
 | 
						|
 | 
						|
import (
 | 
						|
	"encoding/csv"
 | 
						|
	"fmt"
 | 
						|
	"io"
 | 
						|
	"log"
 | 
						|
	"os"
 | 
						|
	"strings"
 | 
						|
)
 | 
						|
 | 
						|
func ExampleReader() {
 | 
						|
	in := `first_name,last_name,username
 | 
						|
"Rob","Pike",rob
 | 
						|
Ken,Thompson,ken
 | 
						|
"Robert","Griesemer","gri"
 | 
						|
`
 | 
						|
	r := csv.NewReader(strings.NewReader(in))
 | 
						|
 | 
						|
	for {
 | 
						|
		record, err := r.Read()
 | 
						|
		if err == io.EOF {
 | 
						|
			break
 | 
						|
		}
 | 
						|
		if err != nil {
 | 
						|
			log.Fatal(err)
 | 
						|
		}
 | 
						|
 | 
						|
		fmt.Println(record)
 | 
						|
	}
 | 
						|
	// Output:
 | 
						|
	// [first_name last_name username]
 | 
						|
	// [Rob Pike rob]
 | 
						|
	// [Ken Thompson ken]
 | 
						|
	// [Robert Griesemer gri]
 | 
						|
}
 | 
						|
 | 
						|
// This example shows how csv.Reader can be configured to handle other
 | 
						|
// types of CSV files.
 | 
						|
func ExampleReader_options() {
 | 
						|
	in := `first_name;last_name;username
 | 
						|
"Rob";"Pike";rob
 | 
						|
# lines beginning with a # character are ignored
 | 
						|
Ken;Thompson;ken
 | 
						|
"Robert";"Griesemer";"gri"
 | 
						|
`
 | 
						|
	r := csv.NewReader(strings.NewReader(in))
 | 
						|
	r.Comma = ';'
 | 
						|
	r.Comment = '#'
 | 
						|
 | 
						|
	records, err := r.ReadAll()
 | 
						|
	if err != nil {
 | 
						|
		log.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	fmt.Print(records)
 | 
						|
	// Output:
 | 
						|
	// [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]]
 | 
						|
}
 | 
						|
 | 
						|
func ExampleReader_ReadAll() {
 | 
						|
	in := `first_name,last_name,username
 | 
						|
"Rob","Pike",rob
 | 
						|
Ken,Thompson,ken
 | 
						|
"Robert","Griesemer","gri"
 | 
						|
`
 | 
						|
	r := csv.NewReader(strings.NewReader(in))
 | 
						|
 | 
						|
	records, err := r.ReadAll()
 | 
						|
	if err != nil {
 | 
						|
		log.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	fmt.Print(records)
 | 
						|
	// Output:
 | 
						|
	// [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]]
 | 
						|
}
 | 
						|
 | 
						|
func ExampleWriter() {
 | 
						|
	records := [][]string{
 | 
						|
		{"first_name", "last_name", "username"},
 | 
						|
		{"Rob", "Pike", "rob"},
 | 
						|
		{"Ken", "Thompson", "ken"},
 | 
						|
		{"Robert", "Griesemer", "gri"},
 | 
						|
	}
 | 
						|
 | 
						|
	w := csv.NewWriter(os.Stdout)
 | 
						|
 | 
						|
	for _, record := range records {
 | 
						|
		if err := w.Write(record); err != nil {
 | 
						|
			log.Fatalln("error writing record to csv:", err)
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	// Write any buffered data to the underlying writer (standard output).
 | 
						|
	w.Flush()
 | 
						|
 | 
						|
	if err := w.Error(); err != nil {
 | 
						|
		log.Fatal(err)
 | 
						|
	}
 | 
						|
	// Output:
 | 
						|
	// first_name,last_name,username
 | 
						|
	// Rob,Pike,rob
 | 
						|
	// Ken,Thompson,ken
 | 
						|
	// Robert,Griesemer,gri
 | 
						|
}
 | 
						|
 | 
						|
func ExampleWriter_WriteAll() {
 | 
						|
	records := [][]string{
 | 
						|
		{"first_name", "last_name", "username"},
 | 
						|
		{"Rob", "Pike", "rob"},
 | 
						|
		{"Ken", "Thompson", "ken"},
 | 
						|
		{"Robert", "Griesemer", "gri"},
 | 
						|
	}
 | 
						|
 | 
						|
	w := csv.NewWriter(os.Stdout)
 | 
						|
	w.WriteAll(records) // calls Flush internally
 | 
						|
 | 
						|
	if err := w.Error(); err != nil {
 | 
						|
		log.Fatalln("error writing csv:", err)
 | 
						|
	}
 | 
						|
	// Output:
 | 
						|
	// first_name,last_name,username
 | 
						|
	// Rob,Pike,rob
 | 
						|
	// Ken,Thompson,ken
 | 
						|
	// Robert,Griesemer,gri
 | 
						|
}
 |