1 Star 0 Fork 1

flyiot/flylibs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
FlyIni.go 2.69 KB
一键复制 编辑 原始数据 按行查看 历史
flyrainning 提交于 2023-03-03 16:52 +08:00 . u
package FlyConfigFile
import (
"errors"
"strings"
"time"
"gitee.com/flyiot/flylibs/FlyUtils"
ini "gopkg.in/ini.v1"
)
type FlyIni struct {
FileName string
Config *ini.File
Ready bool
}
func NewFlyIni(filename string) *FlyIni {
s := FlyIni{}
s.Open(filename)
return &s
}
// 获取串口配置名称
func (s *FlyIni) Open(file string) error {
s.Ready = false
if file == "" {
return errors.New("filename error")
}
if !FlyUtils.FileExists(file) {
return errors.New("file not found: " + file)
}
s.FileName = file
var err error
s.Config, err = ini.Load(s.FileName)
if err == nil {
s.Ready = true
}
return err
}
// GetConfigKey
func (s *FlyIni) GetConfigKey(section string, key string) *ini.Key {
if !s.Ready {
return nil
}
return s.Config.Section(section).Key(key)
}
// GetBool 获取bool
func (s *FlyIni) GetBool(section string, key string, defaults bool) bool {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustBool(defaults)
}
// GetDuration
func (s *FlyIni) GetDuration(section string, key string, defaults time.Duration) time.Duration {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustDuration(defaults)
}
// GetFloat64
func (s *FlyIni) GetFloat64(section string, key string, defaults float64) float64 {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustFloat64(defaults)
}
// GetInt
func (s *FlyIni) GetInt(section string, key string, defaults int) int {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustInt(defaults)
}
// GetInt64
func (s *FlyIni) GetInt64(section string, key string, defaults int64) int64 {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustInt64(defaults)
}
// GetString
func (s *FlyIni) GetString(section string, key string, defaults string) string {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustString(defaults)
}
func (s *FlyIni) GetStringArr(section string, key string, defaults string) []string {
str := s.GetString(section, key, defaults)
return strings.Split(str, ",")
}
// GetTime
func (s *FlyIni) GetTime(section string, key string, defaults time.Time) time.Time {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustTime(defaults)
}
// GetUint
func (s *FlyIni) GetUint(section string, key string, defaults uint) uint {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustUint(defaults)
}
// GetUint64
func (s *FlyIni) GetUint64(section string, key string, defaults uint64) uint64 {
k := s.GetConfigKey(section, key)
if k == nil {
return defaults
}
return k.MustUint64(defaults)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/flyiot/flylibs.git
git@gitee.com:flyiot/flylibs.git
flyiot
flylibs
flylibs
b9c81f1c9857

搜索帮助