gopkg.in/essentialkaos/ek.v3@v3.5.1/csv/csv.go (about) 1 // Package csv contains simple csv parser 2 package csv 3 4 // ////////////////////////////////////////////////////////////////////////////////// // 5 // // 6 // Copyright (c) 2009-2016 Essential Kaos // 7 // Essential Kaos Open Source License <http://essentialkaos.com/ekol?en> // 8 // // 9 // ////////////////////////////////////////////////////////////////////////////////// // 10 11 import ( 12 "bufio" 13 "io" 14 "strings" 15 ) 16 17 // ////////////////////////////////////////////////////////////////////////////////// // 18 19 // Reader is reader struct 20 type Reader struct { 21 Comma rune 22 br *bufio.Reader 23 } 24 25 // ////////////////////////////////////////////////////////////////////////////////// // 26 27 // NewReader create new reader 28 func NewReader(r io.Reader) *Reader { 29 return &Reader{ 30 Comma: ';', 31 br: bufio.NewReader(r), 32 } 33 } 34 35 // ////////////////////////////////////////////////////////////////////////////////// // 36 37 // Read reads line from csv file 38 func (r *Reader) Read() ([]string, error) { 39 str, _, err := r.br.ReadLine() 40 41 if err != nil || len(str) == 0 { 42 return []string{}, err 43 } 44 45 return strings.Split(string(str), string(r.Comma)), nil 46 }