|
- //文件操作函数,将一系列字符串保存到一个文本文件中(字符串,保存的文件名;字符串的向量,写入文件的内容)
- void TextFileUtil::Save(const TCHAR* fileName, const std::vector<CString> &lines)
- { // 以下是支持MFC才有的,相当于open函数功能
- CStdioFile file(fileName, CFile::modeCreate | CFile::modeWrite | CFile::typeText);
- for (int i = 0; i < (int)lines.size(); i++)
- {
- file.WriteString(lines[i]);//写入每个字符串并换行
- file.WriteString(采用RXST("\n"));
- }
- file.Close();
- }
- //从指定的文本文件中读取所有行,并将它们存储在lines这个向量中(读取的文本文件的名称,保存读取到的文本文件的每一行)
- bool TextFileUtil::Load(const TCHAR* fileName, std::vector<CString> &lines)
- {
- // 纠错函数:如果文件不存在打印
- if (PathFileExists(fileName) != TRUE)
- {
- acutPrintf(采用T("\n读取的文件不存在!"));
- return false;
- }
- else
- {
- lines.clear();
-
- CStdioFile file(fileName, CFile::modeRead | CFile::typeText);
- CString strLine;//用于保存从文件中读取的每一行
- while (file.ReadString(strLine))//尝试从打开的文件中读取一行文本,并将其保存在strLine变量中
- {
- lines.push采用back(strLine);//将每一行(保存在strLine中)添加到lines向量中
- }
- return true;
- }
- }
- // 通过对话框选择获取文件绝对路径(多选):一些MFC语句,了解即可,重点看注释语句
- bool TextFileUtil::SelectFilePath(CStringArray& fileNameArray)
- {
- // 构建文件过滤器
- CNavFilter* filter;
- // 过滤的注释
- LPCTSTR filterDesc[] = { 采用T("可选文件格式"), NULL };
-
- // 过滤的后缀名:可以在null前增加后缀
- LPCTSTR filterDWG[] = { 采用T("*.dwg"),采用T("*.dxf"), NULL };
- LPCTSTR* filterSpec[] = { filterDWG, NULL };
-
- CNavFilterArray gFilterArray;
- gFilterArray.RemoveAllData();
-
- int i = 0, j;
- while (filterSpec[i] != NULL)
- {
- filter = gFilterArray.AddData();
- if (filter != NULL)
- {
- filter->SetDescription(filterDesc[i]);
- j = 0;
- while (filterSpec[i][j] != NULL)
- {
- filter->Add(filterSpec[i][j]);
- j++;
- }
- }
- i++;
- }
-
- fileNameArray.RemoveAll();
-
- CNavDataArray gDataArray;
- while (true)
- { // 获取autoCAD的窗口句柄
- HWND acadhandle = adsw采用acadMainWnd();
- // 使句柄成为当前窗口
- ::EnableWindow(acadhandle, true);
- // 设置焦点
- ::SetFocus(acadhandle);
- // 获取MFC的主窗口
- CWnd* pWnd = CWnd::FromHandle(acadhandle);
- CAcUiNavDialog dlg(gDataArray, gFilterArray, 0, pWnd);
- // 开启多选模式
- dlg.SetMultiSelectAllowed(true);
- // 对话框标题
- dlg.SetDialogCaption(采用T("多选对话框"));
- // 设置当前点选的文件可见缩略图
- dlg.SetPreviewPresent(true);
- dlg.SetPreviewVisible(true);
-
- // 如果点选了确认按钮
- if (dlg.DoModal() == IDOK)
- {
- for (int i = 0; i < gDataArray.GetCount(); i++)
- {
- LPITEMIDLIST id = gDataArray.GetAt(i)->GetID();
-
- // 获取并打印:每个选择到的 文件绝对路径 的 字符串
- fileNameArray.Add(gDataArray.GetAt(i)->GetText());
- }
- }
- // 跳出循环
- break;
- }
- if (fileNameArray.GetCount() > 0)
- return true;
- else
- return false;
- }
复制代码 |
|