mfc 列表框 数据 封存

mfc 列表框 数据 保存
mfc 列表框 数据 封存
列表框 点击 右键 弹出 “添加”和“删除”,当我选择“添加”时,想保存数据(磁盘上)
然后在“选择参数”时,弹出以下对话框
mfc 列表框 数据 封存
如果输入通道1,在列表框中就自动出现所有通道1的数据
------解决方案--------------------
以Map为例,每列数据存放咋一个stl::vector<string>中,然后再将vector存入map
using namespace std;
map<string,vector> dataMap;
vector<string> col;
string channel = "1";
string preput = "2";
string distance = "3";
string angle = "4";
col.push_back(channel);
col.push_back(preput );
col.push_back(distance );
col.push_back(angle );
dataMap.insert(map<string, vector>::value_type ("1", col));
...
...

文件存储
CStdioFile file;
file.Open("D:\\data.txt", CFile::modeWrite
------解决方案--------------------
CFile::modeCreate
------解决方案--------------------
modeNoTruncate);
string colData; // 存放包含,分隔符的列数据
// 遍历map和vector循环写入数据
map<string, vector>::iterator iterMap
vector<string>::iterator iterVec;  
for(iterMap= dataMap.begin(); iterMap != dataMap.end(); iterMap++)
{
   col = iterMap->second;
   for(iterVec = col.begin(); iterVec != col.end(); iterVec++)
   {
       colData += *iterVec;
       if(iterVec != col.end() - 1)
          colData += ","; // 每列元素分割
   }
   file.WriteString(colData.c_str());
   colData.clear(); // 清空
}
file.Close();
代码手写,未编译,你需自己调试一下