文件操作
//文件操作函数,将一系列字符串保存到一个文本文件中(字符串,保存的文件名;字符串的向量,写入文件的内容)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);//写入每个字符串并换行
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 != NULL)
{
filter = gFilterArray.AddData();
if (filter != NULL)
{
filter->SetDescription(filterDesc);
j = 0;
while (filterSpec != NULL)
{
filter->Add(filterSpec);
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;
}
页:
[1]