天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 119|回复: 0

文件操作

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-6 11:46:25 | 显示全部楼层 |阅读模式
    1. //文件操作函数,将一系列字符串保存到一个文本文件中(字符串,保存的文件名;字符串的向量,写入文件的内容)
    2. void TextFileUtil::Save(const TCHAR* fileName, const std::vector<CString> &lines)
    3. {   // 以下是支持MFC才有的,相当于open函数功能
    4.         CStdioFile file(fileName, CFile::modeCreate | CFile::modeWrite | CFile::typeText);
    5.         for (int i = 0; i < (int)lines.size(); i++)
    6.         {
    7.                 file.WriteString(lines[i]);//写入每个字符串并换行
    8.                 file.WriteString(采用RXST("\n"));
    9.         }
    10.         file.Close();
    11. }
    12. //从指定的文本文件中读取所有行,并将它们存储在lines这个向量中(读取的文本文件的名称,保存读取到的文本文件的每一行)
    13. bool TextFileUtil::Load(const TCHAR* fileName, std::vector<CString> &lines)
    14. {
    15.         // 纠错函数:如果文件不存在打印
    16.         if (PathFileExists(fileName) != TRUE)
    17.         {
    18.                 acutPrintf(采用T("\n读取的文件不存在!"));
    19.                 return false;
    20.         }
    21.         else
    22.         {
    23.                 lines.clear();
    24.                 CStdioFile file(fileName, CFile::modeRead | CFile::typeText);
    25.                 CString strLine;//用于保存从文件中读取的每一行
    26.                 while (file.ReadString(strLine))//尝试从打开的文件中读取一行文本,并将其保存在strLine变量中
    27.                 {
    28.                         lines.push采用back(strLine);//将每一行(保存在strLine中)添加到lines向量中
    29.                 }
    30.                 return true;
    31.         }
    32. }
    33. // 通过对话框选择获取文件绝对路径(多选):一些MFC语句,了解即可,重点看注释语句
    34. bool TextFileUtil::SelectFilePath(CStringArray& fileNameArray)
    35. {
    36.         // 构建文件过滤器
    37.         CNavFilter* filter;
    38.         // 过滤的注释
    39.         LPCTSTR filterDesc[] = { 采用T("可选文件格式"), NULL };
    40.         // 过滤的后缀名:可以在null前增加后缀
    41.         LPCTSTR filterDWG[] = { 采用T("*.dwg"),采用T("*.dxf"), NULL };
    42.         LPCTSTR* filterSpec[] = { filterDWG, NULL };
    43.         CNavFilterArray gFilterArray;
    44.         gFilterArray.RemoveAllData();
    45.         int i = 0, j;
    46.         while (filterSpec[i] != NULL)
    47.         {
    48.                 filter = gFilterArray.AddData();
    49.                 if (filter != NULL)
    50.                 {
    51.                         filter->SetDescription(filterDesc[i]);
    52.                         j = 0;
    53.                         while (filterSpec[i][j] != NULL)
    54.                         {
    55.                                 filter->Add(filterSpec[i][j]);
    56.                                 j++;
    57.                         }
    58.                 }
    59.                 i++;
    60.         }
    61.         fileNameArray.RemoveAll();
    62.         CNavDataArray gDataArray;
    63.         while (true)
    64.         {        // 获取autoCAD的窗口句柄
    65.                 HWND acadhandle = adsw采用acadMainWnd();
    66.                 // 使句柄成为当前窗口
    67.                 ::EnableWindow(acadhandle, true);
    68.                 // 设置焦点
    69.                 ::SetFocus(acadhandle);
    70.                 // 获取MFC的主窗口
    71.                 CWnd* pWnd = CWnd::FromHandle(acadhandle);
    72.                 CAcUiNavDialog dlg(gDataArray, gFilterArray, 0, pWnd);
    73.                 // 开启多选模式
    74.                 dlg.SetMultiSelectAllowed(true);
    75.                 // 对话框标题
    76.                 dlg.SetDialogCaption(采用T("多选对话框"));
    77.                 // 设置当前点选的文件可见缩略图
    78.                 dlg.SetPreviewPresent(true);
    79.                 dlg.SetPreviewVisible(true);
    80.                 // 如果点选了确认按钮
    81.                 if (dlg.DoModal() == IDOK)
    82.                 {
    83.                         for (int i = 0; i < gDataArray.GetCount(); i++)
    84.                         {
    85.                                 LPITEMIDLIST id = gDataArray.GetAt(i)->GetID();
    86.                                 // 获取并打印:每个选择到的 文件绝对路径 的 字符串
    87.                                 fileNameArray.Add(gDataArray.GetAt(i)->GetText());
    88.                         }
    89.                 }
    90.                 // 跳出循环
    91.                 break;
    92.         }
    93.         if (fileNameArray.GetCount() > 0)
    94.                 return true;
    95.         else
    96.                 return false;
    97. }
    复制代码

     

     

     

     

    文件操作
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 07:17 , Processed in 0.145626 second(s), 29 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表