问题是这样的:我的主对话框MainDlg,其中有按钮:新增、确定、应用、取消、ListCtrl、编辑。当我点击新增按钮,打开一模态对话框NewDlg,供用户输入数据,NewDlg对话框里有EditBox, ComboBox等,差不多十个控件,当用户输入完数据后按确定按钮,回到主对话框,然后把数据往ListCtrl里写(只是显示,没有真正写入文件),当有再按新增时,再往ListCtrl里写,假如我现在新增了5个项(也就是按5次新增),当我按主对话框的应用按钮时,才把5次数据一次性写入文件(ini),当我按取消时,5个数据没有真正的写入文件,当我按主对话框的确定按钮时,先执行应用再退出。现在问题就是我该如何存储这些数据,以便最后在有按应用按钮时真正写入文件,我是不是要新建一个类了存储,或是用链表、数组什么的,但我不知具体步骤是怎样的,请大哥位帮忙出出点子,小弟在此先谢谢了。(小弟初学,请多指教!)
不用再另存一分了,如果你想另存一分的化,用链表就可以
typedef struct _MyData {
int item1,item2,item3;
char szStr1,szStr2;
...
} MyData;
然后用数组、链表等保存这个结构就行。文件方式: CFile f;
f.open();
f.write(...);
f.fulsh();
f.close();
...
我做的是公司员工管理系统(已发布出售)中的员工兼职情况。
本来想一个大一点的数组存放就好了,后来想练习一下链表就写一个链表类,来统计员工的兼职情况。我添加员工职务的是LIST COMBO,原理大同小一。算法过程:先就是创建结点结构 和 连表类的声明定义。使用过程先把数据存储到链表然后在从连表循环把数据输出到LIST CTRL控件。除非点击的是存储这类功能的按纽,否则用户的所有操作永远是对连表进行的,而每一次的操作所伴随的就是对LIST CTRL中内容的刷新。
一般存储到上万条系统显示的时候都不会有太大的困难(我在塞样2 800HZ,SDR 128M内存 WINXP OS上调试),不过10万条(其实我测试的时候6万条的数据就很吃力了,但还是能显示)以上就不能用这样的方法了(如果依然这样会造成死机),需要通过对内存进行操作,或者创建自己的LIST类的方法来解决。