2025-08-30 22:00:31 +03:00
|
|
|
package script
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/csv"
|
|
|
|
"os"
|
|
|
|
)
|
|
|
|
|
|
|
|
// CSV creates csv.Reader reading from filename.
|
|
|
|
func NewCSVReader(filename string) (*CSVReader, error) {
|
|
|
|
return newCSVreader(filename)
|
|
|
|
}
|
|
|
|
|
|
|
|
type CSVReader struct {
|
|
|
|
f *os.File
|
|
|
|
rdr *csv.Reader
|
|
|
|
}
|
|
|
|
|
2025-08-31 13:31:00 +03:00
|
|
|
func (c *CSVReader) Read() ([]string, error) {
|
2025-08-30 22:00:31 +03:00
|
|
|
return c.rdr.Read()
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *CSVReader) Close() error {
|
|
|
|
return c.f.Close()
|
|
|
|
}
|
|
|
|
|
|
|
|
func newCSVreader(name string) (*CSVReader, error) {
|
|
|
|
f, err := os.Open(name)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
csvr := csv.NewReader(f)
|
|
|
|
|
|
|
|
return &CSVReader{f: f, rdr: csvr}, nil
|
|
|
|
}
|