如何提取 SysLastValue.Value 到 XML 文件?
How to extract SysLastValue.Value to XML file?
我正在寻找一种方法来提取存储在 SysLastValue
table 中的列值的值。
我试图将它存储在 txt 文件中,但文本文件的内容不可读
static void jobSettingStore(Args _args)
{
syslastvalue sysLastValue;
container dataContainer;
BinData binData;
container blobContainer;
ContainerClass containerClass;
str settingsFileName = "c:\settings.txt";
dataContainer = xSysLastValue::getValue(curExt(), curUserId(), UtilElementType::Usersetup, 'Mytable', 'myDesignName');
containerClass = new ContainerClass(dataContainer);
blobContainer = containerClass.toBlob();
binData = new BinData();
binData.setData(blobContainer);
binData.saveFile(settingsFileName);
}
还有其他方法可以将此值存储在 XML 文件中吗?
对于大多数包装 类,您只需对容器进行 con2str
操作即可获得可读内容。如果容器有嵌套容器,这将不起作用。并且用户设置容器有!
可以用递归函数解决:
static void con2xmlTest(Args _args)
{
container con;
str con2xml(container c, str ind = '', str sep = ' ')
{
int idx = 0;
int len = conLen(c);
str tmp;
str retStr;
while (idx < len)
{
idx += 1;
if (typeOf(conPeek(c,idx)) == Types::Container)
retStr += ind + sep + con2xml(conPeek(c,idx), ind+sep) + '\n';
else
{
tmp = conPeek(c,idx);
retStr += strFmt(ind + sep + '<%2>%1</%2>\n', tmp, typeOf(conPeek(c,idx)));
}
}
return strFmt('<%2>\n%1</%2>', retStr + ind , Types::Container);
}
info(con2xml([1,2.0,["3",today()]]));
con = xSysLastValue::getValue(curExt(), curUserId(), UtilElementType::Usersetup, 'CustTable', '');
info(con2xml(con));
}
除了人类之外,输出是可读的。
我正在寻找一种方法来提取存储在 SysLastValue
table 中的列值的值。
我试图将它存储在 txt 文件中,但文本文件的内容不可读
static void jobSettingStore(Args _args)
{
syslastvalue sysLastValue;
container dataContainer;
BinData binData;
container blobContainer;
ContainerClass containerClass;
str settingsFileName = "c:\settings.txt";
dataContainer = xSysLastValue::getValue(curExt(), curUserId(), UtilElementType::Usersetup, 'Mytable', 'myDesignName');
containerClass = new ContainerClass(dataContainer);
blobContainer = containerClass.toBlob();
binData = new BinData();
binData.setData(blobContainer);
binData.saveFile(settingsFileName);
}
还有其他方法可以将此值存储在 XML 文件中吗?
对于大多数包装 类,您只需对容器进行 con2str
操作即可获得可读内容。如果容器有嵌套容器,这将不起作用。并且用户设置容器有!
可以用递归函数解决:
static void con2xmlTest(Args _args)
{
container con;
str con2xml(container c, str ind = '', str sep = ' ')
{
int idx = 0;
int len = conLen(c);
str tmp;
str retStr;
while (idx < len)
{
idx += 1;
if (typeOf(conPeek(c,idx)) == Types::Container)
retStr += ind + sep + con2xml(conPeek(c,idx), ind+sep) + '\n';
else
{
tmp = conPeek(c,idx);
retStr += strFmt(ind + sep + '<%2>%1</%2>\n', tmp, typeOf(conPeek(c,idx)));
}
}
return strFmt('<%2>\n%1</%2>', retStr + ind , Types::Container);
}
info(con2xml([1,2.0,["3",today()]]));
con = xSysLastValue::getValue(curExt(), curUserId(), UtilElementType::Usersetup, 'CustTable', '');
info(con2xml(con));
}
除了人类之外,输出是可读的。