问题是这样的:我的主对话框MainDlg,其中有按钮:新增、确定、应用、取消、ListCtrl、编辑。当我点击新增按钮,打开一模态对话框NewDlg,供用户输入数据,NewDlg对话框里有EditBox, ComboBox等,差不多十个控件,当用户输入完数据后按确定按钮,回到主对话框,然后把数据往ListCtrl里写(只是显示,没有真正写入文件),当有再按新增时,再往ListCtrl里写,假如我现在新增了5个项(也就是按5次新增),当我按主对话框的应用按钮时,才把5次数据一次性写入文件(ini),当我按取消时,5个数据没有真正的写入文件,当我按主对话框的确定按钮时,先执行应用再退出。现在问题就是我该如何存储这些数据,以便最后在有按应用按钮时真正写入文件,我是不是要新建一个类了存储,或是用链表、数组什么的,但我不知具体步骤是怎样的,请大哥位帮忙出出点子,小弟在此先谢谢了。(小弟初学,请多指教!)

解决方案 »

  1.   

    你写入时,从ListCtrl中取出来就可以了
    不用再另存一分了,如果你想另存一分的化,用链表就可以
      

  2.   

    先定义一个结构:
    typedef struct  _MyData {
                int item1,item2,item3;
                char szStr1,szStr2;
                ...
               } MyData;
     
    然后用数组、链表等保存这个结构就行。文件方式:  CFile f;
              f.open();
              f.write(...);
              f.fulsh();
              f.close();
    ...
      

  3.   

    抱歉:f.fulsh()  应为 f.flush()
      

  4.   

    如果从 ListCtrl 读出来,假如我的 ListCtrl 原来就有数据了,怎么区分??
      

  5.   

    阁下的东西我以前也做过。给你些提示:
    我做的是公司员工管理系统(已发布出售)中的员工兼职情况。
    本来想一个大一点的数组存放就好了,后来想练习一下链表就写一个链表类,来统计员工的兼职情况。我添加员工职务的是LIST COMBO,原理大同小一。算法过程:先就是创建结点结构 和 连表类的声明定义。使用过程先把数据存储到链表然后在从连表循环把数据输出到LIST CTRL控件。除非点击的是存储这类功能的按纽,否则用户的所有操作永远是对连表进行的,而每一次的操作所伴随的就是对LIST CTRL中内容的刷新。
    一般存储到上万条系统显示的时候都不会有太大的困难(我在塞样2 800HZ,SDR 128M内存 WINXP OS上调试),不过10万条(其实我测试的时候6万条的数据就很吃力了,但还是能显示)以上就不能用这样的方法了(如果依然这样会造成死机),需要通过对内存进行操作,或者创建自己的LIST类的方法来解决。