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  }