10 个解决方案
#1
mark and go home
#2
用xml
#3
打算要读的就是一个xml文件
#4
存储和提取的例子:
http://www.codeproject.com/useritems/ctreectrl_xml.asp
http://www.codeproject.com/useritems/ctreectrl_xml.asp
#5
可以这样作:
讲各个属性保存到*.ini(或者注册表中)中,通过读取、写入section/key的方法进行操作。
具体如下:
【root】
root1= ;以结构体的形式保存到key中,结构中可以包含是否有child,节点section name等信息
root2= ;
。。。
【root1】
root1_1=;
root1_2=;
【root1_1】
讲各个属性保存到*.ini(或者注册表中)中,通过读取、写入section/key的方法进行操作。
具体如下:
【root】
root1= ;以结构体的形式保存到key中,结构中可以包含是否有child,节点section name等信息
root2= ;
。。。
【root1】
root1_1=;
root1_2=;
【root1_1】
#6
谢谢,但大家似乎没有明白我的意思。这是个后台的程序,只是个中间过程,再去构造一个ini似乎不妥。
#7
自已写一个与之对应的"树"类
#8
偶以前曾用过递归的方式来存。以下是大概的思路:
void write(node)
{
write('0');
write(node.content);
for ( i = 0; i < node.childCount; ++i ) {
write('1');
write(child[i]);
}
write('2');
}
void read(node)
{
for ( ;; ) {
flag = readchar;
switch (flag) {
case '0':
// the next will be content
read(node.content);
break;
case '1':
child = node.createChild();
read(child);
break;
}
if ( flag == '2' ) break;
}
}
使用的时候调用write(root)和read(root)即可
void write(node)
{
write('0');
write(node.content);
for ( i = 0; i < node.childCount; ++i ) {
write('1');
write(child[i]);
}
write('2');
}
void read(node)
{
for ( ;; ) {
flag = readchar;
switch (flag) {
case '0':
// the next will be content
read(node.content);
break;
case '1':
child = node.createChild();
read(child);
break;
}
if ( flag == '2' ) break;
}
}
使用的时候调用write(root)和read(root)即可
#9
xml
#10
superarhow(苏泊尔耗) 的程序 看不大明白, node是树控件的节点吗?
现在考虑用模版来做,
template<Class T>
如此定义map:
typedef map<string, T> myMap;
T既可以是string,也可以是某个节点下的树。
但问题是使用模版的时候还是要给T指定一个类型,如果指定为string,那就不能得到树, 如果指定为myMap,因为其中有未指定的T,则通不过编译。 想了很多办法,但都不行,不知道这种办法到底可不可行。
现在考虑用模版来做,
template<Class T>
如此定义map:
typedef map<string, T> myMap;
T既可以是string,也可以是某个节点下的树。
但问题是使用模版的时候还是要给T指定一个类型,如果指定为string,那就不能得到树, 如果指定为myMap,因为其中有未指定的T,则通不过编译。 想了很多办法,但都不行,不知道这种办法到底可不可行。
#1
mark and go home
#2
用xml
#3
打算要读的就是一个xml文件
#4
存储和提取的例子:
http://www.codeproject.com/useritems/ctreectrl_xml.asp
http://www.codeproject.com/useritems/ctreectrl_xml.asp
#5
可以这样作:
讲各个属性保存到*.ini(或者注册表中)中,通过读取、写入section/key的方法进行操作。
具体如下:
【root】
root1= ;以结构体的形式保存到key中,结构中可以包含是否有child,节点section name等信息
root2= ;
。。。
【root1】
root1_1=;
root1_2=;
【root1_1】
讲各个属性保存到*.ini(或者注册表中)中,通过读取、写入section/key的方法进行操作。
具体如下:
【root】
root1= ;以结构体的形式保存到key中,结构中可以包含是否有child,节点section name等信息
root2= ;
。。。
【root1】
root1_1=;
root1_2=;
【root1_1】
#6
谢谢,但大家似乎没有明白我的意思。这是个后台的程序,只是个中间过程,再去构造一个ini似乎不妥。
#7
自已写一个与之对应的"树"类
#8
偶以前曾用过递归的方式来存。以下是大概的思路:
void write(node)
{
write('0');
write(node.content);
for ( i = 0; i < node.childCount; ++i ) {
write('1');
write(child[i]);
}
write('2');
}
void read(node)
{
for ( ;; ) {
flag = readchar;
switch (flag) {
case '0':
// the next will be content
read(node.content);
break;
case '1':
child = node.createChild();
read(child);
break;
}
if ( flag == '2' ) break;
}
}
使用的时候调用write(root)和read(root)即可
void write(node)
{
write('0');
write(node.content);
for ( i = 0; i < node.childCount; ++i ) {
write('1');
write(child[i]);
}
write('2');
}
void read(node)
{
for ( ;; ) {
flag = readchar;
switch (flag) {
case '0':
// the next will be content
read(node.content);
break;
case '1':
child = node.createChild();
read(child);
break;
}
if ( flag == '2' ) break;
}
}
使用的时候调用write(root)和read(root)即可
#9
xml
#10
superarhow(苏泊尔耗) 的程序 看不大明白, node是树控件的节点吗?
现在考虑用模版来做,
template<Class T>
如此定义map:
typedef map<string, T> myMap;
T既可以是string,也可以是某个节点下的树。
但问题是使用模版的时候还是要给T指定一个类型,如果指定为string,那就不能得到树, 如果指定为myMap,因为其中有未指定的T,则通不过编译。 想了很多办法,但都不行,不知道这种办法到底可不可行。
现在考虑用模版来做,
template<Class T>
如此定义map:
typedef map<string, T> myMap;
T既可以是string,也可以是某个节点下的树。
但问题是使用模版的时候还是要给T指定一个类型,如果指定为string,那就不能得到树, 如果指定为myMap,因为其中有未指定的T,则通不过编译。 想了很多办法,但都不行,不知道这种办法到底可不可行。