教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Golang读取配置文件(*.ini)信息

Golang读取配置文件(*.ini)信息

发布时间:2021-05-04   编辑:jiaochengji.com
教程集为您提供Golang读取配置文件(*.ini)信息等资源,欢迎您收藏本站,我们将为您提供最新的Golang读取配置文件(*.ini)信息资源
package main

import (
	"fmt"
	"io/ioutil"
	"regexp"
	"strings"
)

func checkErr(e error) {
	if e != nil {
		panic(e)
	}
}

/*
函数名:getCfg(tag string, cfg string)string
参  数:tag string:参数的名称
	  cfg string:配置信息字符串
返回值:string:从配置信息"cfg"中查询到的第一个tag参数的配置值
创建时间:2018年12月3日
修订信息:
*/
func getCfg(tag string, filepath string) string {
	dat, err := ioutil.ReadFile(filepath) //读取文件
	checkErr(err)                         //检查是否有错误
	cfg := string(dat)                    //将读取到达配置文件转化为字符串
	var str string
	s1 := fmt.Sprintf("[^;]%s *= *.{1,}\\n", tag)
	s2 := fmt.Sprintf("%s *= *", tag)
	reg, err := regexp.Compile(s1)
	if err == nil {
		tag_str := reg.FindString(cfg) //在配置字符串中搜索
		if len(tag_str) > 0 {
			r, _ := regexp.Compile(s2)
			i := r.FindStringIndex(tag_str) //查找配置字符串的确切起始位置
			var h_str = make([]byte, len(tag_str)-i[1])
			copy(h_str, tag_str[i[1]:])
			str1 := fmt.Sprintln(string(h_str))
			str2 := strings.Replace(str1, "\n", "", -1)
			str = strings.Replace(str2, "\r", "", -1)
		}
	}
	return str
}

func main() {
	fmt.Println(getCfg("db1.Host", "demo.ini")) //输出:127.0.0.0
}

测试对应的配置文件

[mysql]
db1.Name = testMysqlDB
db1.Host = 127.0.0.1
db1.Port = 3306
db1.User = root
db1.Pwd = test
db1.colname  = ID:int,DataTime:string,DocTagName:string,DocValue:float64
; 测试INI风格的注释
; 这两行数据的前前面加入了分号,因此,这些数据被认为是注释,将不会影响配置文件正常情况

[tcp]
Port=   3309

 

到此这篇关于“Golang读取配置文件(*.ini)信息”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Golang读取配置文件(*.ini)信息
golang读取配置文件
golang读取配置文件(ini文件)
Golang 入门系列(九) 如何读取YAML,JSON,INI等配置文件
php读取与修改自定义配置文件的代码
golang之配置文件
如何读取yaml,json,ini等配置文件【Golang 入门系列九】
python 配置文件如何使用
php操作ini配置文件的例子
2.golang: golang读取配置文件(toml文件形式)

[关闭]
~ ~