是这样子,我有一个txt文件
内容格式:
1xx
(tap)1.1xx
2xx
(tap)2.2xx
(tap)(tap)2.2.2xx
3xx
(tap)3.1xx
4xx
(tap)4.1xx
....我要将它载入treeview并实现格式的级别
另check=true;如果我先选择了第一级,则其下面的子级全选,又如何实现。
还有就是,如何统计数目,即:1.1xx是一个,2.2.2xx又是一个(2.2xx不算),
内容格式:
1xx
(tap)1.1xx
2xx
(tap)2.2xx
(tap)(tap)2.2.2xx
3xx
(tap)3.1xx
4xx
(tap)4.1xx
....我要将它载入treeview并实现格式的级别
另check=true;如果我先选择了第一级,则其下面的子级全选,又如何实现。
还有就是,如何统计数目,即:1.1xx是一个,2.2.2xx又是一个(2.2xx不算),
我目前能够实现到分两级,之前以为是一个tap和两个tap的区别,所以第二个if,但第三级我分不出,
如下,//是后来加的,目的是再分下一级(按txt打开的确是两个tap和一个tap的区别。
StreamReader sr = new StreamReader(sfn);
string tmpStr="";
int tvNode = -1;
int subNodeIndex = -1;
while (!(sr.Peek() == -1))
{
tmpStr = sr.ReadLine();
if (tmpStr.StartsWith("\t"))
{
dtv.Nodes[tvNode].Nodes.Add(tmpStr);
// subNodeIndex++;
}
// else if (tmpStr.StartsWith("\t\t"))//之前还这么写("\t"+"\t")
// {
// dtv.Nodes[tvNode].Nodes[subNodeIndex].Nodes.Add(tmpStr);
}
else
{
dtv.Nodes.Add(tmpStr);
tvNode++;
// subNodeIndex = -1;//新的根节点
} 初级水平,请赐教!
(tap)1.1xx
2xx
(tap)2.2xx
(tap)(tap)2.2.2xx
3xx
(tap)3.1xx
4xx
(tap)4.1xx
.... 其实你完全没有必要理会Tab分隔符,因为每行的ID(1.1xxx,2.2xxx,2.2.2xx)就确定了当前行所属的级别,
我的子节点不是TAP开头的吧,反正我用我的程序读的是挺好的,第三级还是加到第二级了,我想应该是怎么计算每行前面到底是几个空格的问题?还是别的方法?
....//读取文本文件中的一行数据到xml变量中;
int spacecount=xml.Length - xml.TrimStart(new char[] { ' ' }).Length;
int spaceCount = xml.Length-(xml.Trim()).Length
得到值0,1,2,三级。怎么解释呢(tap),另外能实现是每行正好后面没有空格
思路也差不多这样了吧,不知道还有没有好的办法
结贴去:按你的作法:
int spaceCount = xml.Length - (xml.TrimStart(new char[] { '\t' })).Length;
成功!