MFC中如何将多个编辑框中内容存入二维数组中,并按照字典顺序排序,最后以massagebox形式弹出?

越详细越好

1 如果编辑框内容都是字符串的话,二维数组可以用vector<CString>来组织,这样可以利用vector的排序函数。
vector<CString> data;

2 从多个编辑框取文本有两种方法:
a 如果编辑框的资源ID号是连续的,可以用GetDlgItem(ID1-N)->GetWindowText来取,这样可以利用循环语句来写,代码比较简洁:比如
for(int ID=ID_First;ID<=ID_LAST;ID++)
{
GetDlgItem(ID)->GetWindowText(data[i]);
}
b 如果ID号不连续,那就只能一个一个的从编辑框获得内容了
UpdateData();
data[0]=m_cEditString1;
data[1]=m_cEditString2;
data[2]=m_cEditString3;
...
3 排序直接用vector的sort的函数即可
sort(data.begin(),data.end());
4 输出时把排序后的vector在输出即可
CString cs;
for(int i=0;i<data.size();i++)
{
cs+=data[i]; cs+="\r\n";
}
MessageBox(cs);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-06
从一个txt文件中顺序读取数据 依次放入编辑框 这要看你txt内文件格式是怎么组织的了,给个简单的说吧,假如你txt里一行就放的是一个数据,CString追问

是提取多个EDIT里面的内容(字符串),放入二维数组然后按字典书序排序输出。

第2个回答  2011-07-06
1. 先updateData(true);前提是编辑框都对应了变量,把所有字符串都获取出来.
2. 建议先用一个链表把所有数据弄成字典序的(因为直接操作数组插入不方便)
3. 把数据逐项写入到二维数组中,并用一个CString量把所有的数据也同时加起来.
4. 把CString量的值直接MessageBox就行了.