blockreader.go 683 B

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