tconf格式是坦克网络tank config一种配置文件。坦克网络设计的tconf解释器解析这种文件,最初设计目的是学习,并尝试使用中文字符解析技术,提高软件配置本地化,为中国族软件提供价值。tconf配置格式应用在坦克系列软件上。 对坦克系列软件本地化提供帮助。第一个使用tconf配置文件的软件是坦克ns。目前,tconf解析器目前只能在go语言上使用。
tconf配置文件的概念源自一个“字的理念”,里面的很多概念与字的概念有关系。配置文件的概念包括下列这些:
字符行
字符行是配置文件的第一行。这里面包含一些符号。这些符号是这个配置文件所支持的符号。有些符号可以替代。比如中文的逗号(,)可以替代英文的逗号(,),有些不可以替代。字符行不是永远不变的,会随着软件的升级而改变(如果需要),但你无须担心升级的麻烦,当你更新软件的时候,tconf配置文件的符号行会自动升级。符号行的例子是:
,,=《》#“”
它只是一些符号。
字
字是tconf配置文件的第一个最基础的理念,是一切的开始。它本身也是以字的形式存在。程序可以读取字,字不包含任何数据。可以当开关使用。一个简单的例子是:
打开网页服务器
程序读取到这个字就打开网页服务器,如果读不到就不打开。
有名字
有名字是在字的理念上继续发展出来的,它可以保存数据,例子是:
文件大小=20M
程序读到“文件大小”就获得“20M”的数据。有名字是保存数据的字。
列
把字的理念继续扩大,是一列,它由多个字组成。两个列,如果所有字相同,但是位置顺序不同,则这两个列可以同时存在。如果字相同,位置顺序也相同,则两个列只能存在一个。一个例子是:
今天洗衣服,明天洗鞋子,后天洗被子
程序读到这一列,就会执行相应的指令。
有名列
继续扩大字和列的理念。就得到有名列。有名列像是有名字的扩展,它可以存储多个值,当读到它的名时,会获得它的多个值,例子是:
桌子上有=手机,书,打印机,眼镜
对象
一个对象是一个容器,它是字、有名字、列和有名列的容器。它的特别之处是在这四个概念上添加组功能。例子是:
《
打开网页服务器
文件大小=20M
今天洗衣服,明天洗鞋子,后天洗被子
桌子上有=手机,书,打印机,眼镜
》
有名对象
有名对象是在对象的概念上扩展,它也是一个容器。区别在于有名对象是带名字的容器,它给对象添加了名字。例子是:
计划与信息《
打开网页服务器
文件大小=20M
今天洗衣服,明天洗鞋子,后天洗被子
桌子上有=手机,书,打印机,眼镜
》
程序可以通过对象名字获取对象内部的信息。
总结
tconf对象是可以无限嵌套的,支持数据类型有“字”(无名字)、“有名字”、“列”(无名列)、“有名列”、“对象”、“有名对象”6种。
一个完整的配置文件像是这样的,例子一:
,,=《》#“”
计划与信息《
打开网页服务器
文件大小=20M
今天洗衣服,明天洗鞋子,后天洗被子
桌子上有=手机,书,打印机,眼镜
》
坦克NS的记录的例子二:
,,=《》#“”
cc.tk《
《
名=8888
类型=A
值=192.168.2.55
》
《
值=www.tank.co
名=www
类型=CNAME
》
》
《
值=127.0.0.1
名=www.tank004.com
类型=A
生存时间=600
》
《
名=www.tank004.com
类型=A
生存时间=600
值=192.168.2.165
》