aardio 文档

aardio 范例: 字符串列表

//字符串列表 
import console;

var str = "
key1: value1
key2: value2 
"

/*
以行为单位的字符串属性表可用 string.table 解析。
可用等号或冒号分隔键值,忽略分隔符前后的空白,可自定义分隔符。
参数 @3 指定为 '#'# 可启用注释。
*/
var strList = string.table(str);

/*
string.list 则用于解析格式类似但更复杂一些的字符串列表。
字符串列表允许字段值包含跨行的引用段。

aardio 字符串列表格式说明

一、字符串列表本格式

'键名=值\r\n键名2=值2\r\n键名3=值3'

其中行分隔符(lineDelimiter)默认为 '\r\n',可修改设置为其他字符串 
键值对分隔符(nameValueSeparator)默认为 '=',等号前后忽略空格。可修改设置为其他字符串,
键值都忽略首尾空格。
键值都必须是字符串

二、注释

当一个行中不包含键值对分隔符(nameValueSeparator),
则该行在解析时被忽略键名中不允许出现行分隔符

三、引用段

在字符串列表中的值文本中,
可以指定由两个引用符(引号或括号)括起来的引用段,引用段中忽略分隔符。
引用符号必须在值文本首尾匹配。
*/
import console;
import string.list;

var str =  
/*============================================
示例一: 遍历配置列表文件所有字段
============================================*/
console.log( str );


var tlist = string.list( "~/config/use.cfg" );  
for i,k,v in tlist.each() { 
    console.log( i,  k + tlist.mark + v ) 
}

var str = 
/*============================================
示例二: 使用字符串列表
============================================*/
console.log( str );

var str = /*
姓名 = 张三
年龄 = 30
住址 = 北京

*/

//创建字符串列表
var strList = string.list(str)

//保存到文件
strList.save("/test.txt")

//从文件读取字符串列表
strList.load("/test.txt")

//访问成员
console.log( strList.姓名 ) 
//添加新成员
strList.工作单位 = "aardio论坛"

//转换为普通字符串
str = tostring(strList)

//拼接成网址参数格式
var str = tostring(strList,'&' );
console.log( str  )

//如果是简单的字符串列表,可以自已拆分也很简单 
var list = {};
for line in string.lines(str,'\&') { 
    var nv = string.splitEx(line,"=",2);
    list[ nv[1] ] = nv[2];
}
console.dump(list)

console.pause()

Markdown 格式