以下文本文件a.txt,以一种平面数据的形式描述了树状配置信息。具体数据描述如下。数据以空格分开,第一段描述了数据的类型;第二段代表ID号;第三段为描述信息;对于属性还有一到两个信息,第四段为数据类型:C-字符串,N-数字,E-代表枚举型,枚举型以“/"分隔开。求怎么以结构体、联合体的形式表示出来,然后用文件读取处理呢?谢谢了!根 测试部门
分支 10 产品开发部
叶子 101 人员信息
属性 10101 姓名 C
属性 10102 年龄 N
属性 10103 性别 E 男/女
叶子 102 产品信息
属性 10201 产品 C
分支 11 信息中心
叶子 111 班组
属性 11101 名称 C
属性 11102 人数 N

解决方案 »

  1.   

    我没接触过xml,所以不大懂
    这个题目的意思是先用一个大的结构体列出类型,然后文件读取处理,然后用一个树型界面显示出来。
    但是我现在是用结构体表示都有点问题:)
      

  2.   

    写一个分析字符串的函数 
    读取一行分析一行你这个存储也太了乱了吧,不是推荐的  用xml吧,很简单的 没你想象那么难 ,MFC查一下tinyxml 
      

  3.   

    最好还是XML吧?
    像这种使用ACCESS数据库也是不错的了~
      

  4.   

    xml首选,楼主可以研究下xml啊。这个很实用,我也是近期才研究这个,也是要用到了。
      

  5.   

    谢谢热心推荐啊,xml好是好啊,但是只有一天时间了,哪还研究的了哦,只有靠最基本的方法了:)
      

  6.   

    我不知道你要写的这个信息到底有多少,是有至少上千个这样的信息还是怎么的,如果信息很少,你的程序对效率要求也不高的话,我觉得直接用最简单的结构体就可以解决问题了。
    struct Info{
    char szType[5]; //第一段描述了数据的类型 : "分支" 或 "叶子" 或 "属性"
    int nID; //第二段代表ID号 : ID
    char szDescribe[100];//第三段为描述信息
    char DataType; //第四段为数据类型:C-字符串,N-数字,E-代表枚举型
    char szContent[255]; //
    };当你要写文件的时候如下: Info ifo;
    memset( &ifo, 0, sizeof( Info ) );
    strcpy( ifo.szType, "分支" );
    ifo.nID = 10;
    strcpy( ifo.szDescribe, "产品开发部" );填写好结构体的信息直接写进文件,要读文件的时候直接按照固定多少个字节的信息读出来就可以了,从你的要求可以看出最多有五个字段就够了,读的时候有些信息只有前两个字段有效,你就相应读取前两个字段的就可以了,
    我觉得如果存储信息很简单,就不超过10条或者很少,随便做一下就可以了,如果你的信息很多,这个方法肯定不行,必须想其它规范、成熟的方法。
      

  7.   

    请问如果我分析一行处理一行,当readstring strline读到“属性 10102 年龄 N”这一行的时候,“年龄要存到列表框”,但是文件中“年龄”长度和内容是可以变动的,也就是列表框的内容随文件内容变动而改变。那我怎么把“年龄”这个字符串给抽出来存储呢?