Skip to content

Commit

Permalink
ParseMeta
Browse files Browse the repository at this point in the history
  • Loading branch information
zelenin committed Jun 4, 2022
1 parent b9e3d3c commit 8549483
Showing 1 changed file with 47 additions and 2 deletions.
49 changes: 47 additions & 2 deletions datasheet/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ func Parse(dataSheetFile *DataSheetFile) (*DataSheet, error) {
if err != nil {
return nil, err
}

defer file.Close()

meta, err := parseMeta(file)
Expand All @@ -29,6 +28,44 @@ func Parse(dataSheetFile *DataSheetFile) (*DataSheet, error) {
return dataSheet, nil
}

type Meta struct {
UniqueId string
DataType string
}

func ParseMeta(dataSheetFile *DataSheetFile) (*Meta, error) {
file, err := os.Open(dataSheetFile.GetPath())
if err != nil {
return nil, err
}
defer file.Close()

meta, err := parseMeta(file)
if err != nil {
return nil, err
}

_, err = readNullTerminatedString(file)
if err != nil {
return nil, err
}

uniqueId, err := readNullTerminatedStringByOffset(file, meta.bodyOffset+meta.uniqueIdOffset)
if err != nil {
return nil, err
}

dataType, err := readNullTerminatedStringByOffset(file, meta.bodyOffset+meta.dataTypeOffset)
if err != nil {
return nil, err
}

return &Meta{
UniqueId: uniqueId,
DataType: dataType,
}, nil
}

func parseMeta(r *os.File) (*meta, error) {
var headerSize int32

Expand Down Expand Up @@ -244,7 +281,6 @@ func parseMeta(r *os.File) (*meta, error) {
}

func parseBody(r *os.File, meta *meta) (*DataSheet, error) {
// OUTPUT
_, err := readNullTerminatedString(r)
if err != nil {
return nil, err
Expand Down Expand Up @@ -380,6 +416,15 @@ type DataSheet struct {
Rows [][]string
}

func (dataSheet *DataSheet) GetColumnIndexes() map[string]int {
indexes := make(map[string]int, len(dataSheet.Columns))
for i, column := range dataSheet.Columns {
indexes[column.Name] = i
}

return indexes
}

type ColumnType int32

const (
Expand Down

0 comments on commit 8549483

Please sign in to comment.