mirror of https://gitee.com/godoos/godoos.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
624 B
37 lines
624 B
package ole2
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/binary"
|
|
)
|
|
|
|
type Sector []byte
|
|
|
|
func (s *Sector) Uint32(bit uint32) uint32 {
|
|
return binary.LittleEndian.Uint32((*s)[bit : bit+4])
|
|
}
|
|
|
|
func (s *Sector) NextSid(size uint32) uint32 {
|
|
return s.Uint32(size - 4)
|
|
}
|
|
|
|
func (s *Sector) MsatValues(size uint32) []uint32 {
|
|
|
|
return s.values(size, int(size/4-1))
|
|
}
|
|
|
|
func (s *Sector) AllValues(size uint32) []uint32 {
|
|
|
|
return s.values(size, int(size/4))
|
|
}
|
|
|
|
func (s *Sector) values(size uint32, length int) []uint32 {
|
|
|
|
var res = make([]uint32, length)
|
|
|
|
buf := bytes.NewBuffer((*s))
|
|
|
|
binary.Read(buf, binary.LittleEndian, res)
|
|
|
|
return res
|
|
}
|
|
|