# README
Fixed width file parser (encoder/decoder) for GO (golang)
This library allows to parse fixed width table data like:
Name Address Postcode Phone Credit Limit Birthday
Evan Whitehouse V4560 Camel Back Road 3122 (918) 605-5383 1000000.5 19870101
Chuck Norris P.O. Box 872 77868 (713) 868-6003 10909300 19651203
Install
To install the library use the following command:
$ go get -u github.com/o1egl/fwencoder
Decoding example
Parsing data from io.Reader:
type Person struct {
Name string
Address string
Postcode int
Phone string
CreditLimit float64 `json:"Credit Limit"`
Bday time.Time `column:"Birthday" format:"20060102"`
}
f, _ := os.Open("/path/to/file")
defer f.Close
var people []Person
err := fwencoder.UnmarshalReader(f, &people)
You can also parse data from byte array:
b, _ := ioutil.ReadFile("/path/to/file")
var people []Person
err := fwencoder.Unmarshal(b, &people)
Encoding example
people := []Person{
Name: "John",
Address: "P.O. Box 872",
Phone: "(713) 868-6003",
CreditLimit: 10909300,
Bday: "19651203"
}
b, err := Marshal(&people)
fmt.Println(string(b))
or you can directly write to io.Writer
people := []Person{
Name: "John",
Address: "P.O. Box 872",
Phone: "(713) 868-6003",
CreditLimit: 10909300,
Bday: "19651203"
}
err := MarshalWriter(os.Stdout, &people)
# Functions
Marshal returns the fixed width table data encoding of v If v is nil or not a pointer to slice of structs, Unmarshal returns an ErrIncorrectInputValue.
MarshalWriter behaves the same as Marshal, but write data into io.Writer.
Unmarshal parses the fixed width table data and stores the result in the value pointed to by v.
UnmarshalReader behaves the same as Unmarshal, but reads data from io.Reader.
# Variables
ErrIncorrectInputValue represents wrong input param.