blockreader.go 753 B

12345678910111213141516171819202122232425262728
  1. package reader
  2. import (
  3. "io"
  4. "path/filepath"
  5. "git.wecise.com/wecise/cgimport/odbc"
  6. "git.wecise.com/wecise/odb-go/schema"
  7. "github.com/wecisecode/util/merrs"
  8. )
  9. var mcfg = odbc.Config
  10. var logger = odbc.Logger
  11. type BlockReader interface {
  12. ReadBlock(skiplines int) (block map[string]any, line string, linecount int, err error)
  13. }
  14. func NewBlockReader(filename string, classname string, reader io.Reader, schema *schema.Schema) (BlockReader, error) {
  15. fileext := filepath.Ext(filename)
  16. switch fileext {
  17. case ".csv":
  18. return NewCSVBlockReader(filename, classname, reader, schema), nil
  19. case ".txt":
  20. return NewTXTBlockReader(filename, classname, reader), nil
  21. }
  22. return nil, merrs.UnsupportedError.NewError("unsupported data format " + fileext)
  23. }