除了采用json,yaml等格式之外,常用的配置文件还有ini格式的。

 cfg, err := ini.Load(fyPath + "\\ServerSystem.ini") // need confirm which ini file.
if err != nil {
fmt.Printf("Fail to read file: %v", err)
fmt.Fprintf(w, "{\"msg\":\"%s\"}", err.Error())
return false, err
}
// sa password write by clear text
clFlag := cfg.Section("DBServer").Key("User").String()
// rs, _ := utf8.DecodeRuneInString(clFlag)
utf8 := mahonia.NewDecoder("gbk").ConvertString(clFlag)
fmt.Println(utf8)
sc, _ := cfg.NewSection("abc")
sk, _ := sc.NewKey("test", mahonia.NewEncoder("gbk").ConvertString("1ar三郎123")) // ini file is ansi code.so convert...
cfg.Section("DBServer").Key("Name").SetValue(conf.ServerIP)
cfg.Section("DBServer").Key("Key").SetValue(conf.Sapass) // post sapass maybe encrypted,so need decrypt perhaps first,then write to ini file.
cfg.SaveTo(fyPath + "\\ServerSystem.ini")
fmt.Println(sk)
// D7 platform need web port to check,so write ServCfg.ini to save webport and make active flag.
cfg, err = ini.Load(fyPath + "\\ServCfg.ini")
cfg.Section("Serv").Key("WebPort").SetValue(strconv.Itoa(conf.Httpport))
cfg.Section("Serv").Key("WebActive").SetValue(strconv.FormatBool(conf.Remember)) // need confirm active key's name.
cfg.SaveTo(fyPath + "\\ServCfg.ini")

使用到了

"github.com/axgle/mahonia"
"github.com/go-ini/ini"
两个包。
一定注意编码格式,避免乱码。

Go操作ini文件的更多相关文章

  1. 关于C#操作INI文件的总结

    原文:关于C#操作INI文件的总结   INI文件其实是一种具有特定结构的文本文件,它的构成分为三部分,结构如下: [Section1]key 1 = value2key 1 = value2--[S ...

  2. C#利用Vini.cs操作INI文件

    VClassLib-CS项目Github地址:https://github.com/velscode/VClassLib-CS VINI文档地址:https://github.com/velscode ...

  3. [转]C#操作INI文件

    在很多的程序中,我们都会看到有以.ini为后缀名的文件,这个文件可以很方便的对程序配置的一些信息进行设置和读取,比如说我们在做一个程序后台登陆的时候,需要自动登录或者是远程配置数据库连接,及保存密码设 ...

  4. QSettings配置读写-win注册表操作-ini文件读写

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSettings配置读写-win注册表操作-ini文件读写     本文地址:http:// ...

  5. C#操作INI文件(明天陪你看海)

    C#操作INI文件 在很多的程序中,我们都会看到有以.ini为后缀名的文件,这个文件可以很方便的对程序配置的一些信息进行设置和读取,比如说我们在做一个程序后台登陆的时候,需要自动登录或者是远程配置数据 ...

  6. 【转】操作ini文件

    一.INI文件的结构: ; 注释 [小节名] 关键字=值 INI文件有多个小节,每个小节又有多个关键字, “=”后面是该关键字的值.  值的类型有三种:字符串.整型数值和布尔值. 其中字符串存贮在IN ...

  7. .net操作InI文件

    public class INI { public static string IniFileName = "";//路径 [DllImport("kernel32&qu ...

  8. Delphi操作Ini文件

    Delphi提供了一个TInifile类,使我们可以非常灵活的处理INI文件 一.INI文件的结构[小节名]ini文件       关键字1=值1       关键子2=值2INI文件允许有多个小节, ...

  9. .net 操作INI文件

    using System.Runtime.InteropServices; using System.Text; namespace FaureciaManager { public class Fi ...

  10. python操作ini文件

    简介 ini文件作为常见的配置文件,因此需要对ini文件做处理,此处使用configparser模块,本文介绍以下ini文件常用的处理方式. 需要读取的ini文件 如下文件,[ ]包含的称为secti ...

随机推荐

  1. cf1191 解题报告

    cf1191 解题报告 A-简单模拟 脑内算出来让计算机输出 #include <bits/stdc++.h> #define ll long long using namespace s ...

  2. nginx location配置说明

    nginx location语法规则:location  [=|~|~*|^~]  /uri/  { … } nginx的location匹配的变量是$uri 规则优先级 = 高于 ^~ 高于 ~* ...

  3. Sequelize 数据类型

    Sequelize.STRING // VARCHAR(255)Sequelize.STRING(1234) // VARCHAR(1234)Sequelize.STRING.BINARY // VA ...

  4. Android Studio 点运行启用时,列表中不显示虚拟机,但是实际上在AVD Manager中已经添加了2个虚拟设备了

    Android Studio 点运行启用时,列表中不显示虚拟机,但是实际上在AVD Manager中已经添加了2个虚拟设备了 百度上找了一下方法, 情况出现:打开androidstudio,一直连接不 ...

  5. java 多页pdf转化为多张图片

    相关jar包: <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian ...

  6. Jedis与Jedis连接池

    1.Jedis简介 实际开发中,我们需要用Redis的连接工具连接Redis然后操作Redis, 对于主流语言,Redis都提供了对应的客户端: https://redis.io/clients 2. ...

  7. js中for..of..的使用和迭代器

    for..of是ES6中引入的新特性,它主要的作用是:循环一个可迭代的对象. 它可以循环遍历,数组.字符串.Set对象等等,先来看两个简单的例子: 遍历字符串 let str = 'Hello' fo ...

  8. nrm安装和使用--管理你的npm源

    为什么要使用nrm 我们知道可以使用npm来管理node包,方便我们来操作管理包的版本和信息. 可是由于国内网络原因,直接使用npm官网镜像下载安装node包,比较耗时间,有时还不成功,所以一般会将镜 ...

  9. SAS PROC SGPLOT

    OPTIONS LS=MAX PS=MAX NOCENTER USER='.\00@Data'; PROC PRINT DATA=OpenDate;RUN; ODS LISTING GPATH='.\ ...

  10. x86 linux 支持的系统调用参数至多6个

    ebx ecx edx esi edi ebp