您的位置:C++老鼠窝编程 Window编程 正文
 添加时间:2008-08-06 原文发表时间:2008-08-06 人气:2

本文章共2287字,分2页,当前第1页,快速翻页:
 

  本人在开发惠普色谱工作站增强软件的过程中,实现了把指定目录下的色谱数据文件全部转换成纯文本文件的功能。下面,通过用一个具体的例子来说明此功能的实现方法。

  全部代码用Visual C++6.0在Windows95/98/2000下编译通过。

  二、实例

  首先用MFC AppWizard生成一个SDI风格的应用程序test,生成过程中全部使用缺省设置。
  其次,利用资源编辑器,在主菜单“文件”下增加一个菜单项“转换”,属性为:

   ID:ID_CONVERT
   Caption: 转换
   Prompt: 在不同格式文件之间进行转换\n转换文件

  然后用“CTRL-W”热键激活MFC ClassWizard,为CmainFrame类增加响应ID_CONVERT消息的命令函数OnConvert()。加入转换功能的代码如下所示:

   void CMainFrame::OnConvert() 
    {
     LPMALLOC pMalloc;//利用shell扩展功能
     BROWSEINFO bi;
     if (SUCCEEDED(SHGetMalloc(&pMalloc)))//为生成目录选择对话框分配自由内存
      {
       ZeroMemory(&bi,sizeof(bi));//清零分配的空间
       char pszDirName[MAX_PATH];//存放选择的目录名
       LPITEMIDLIST pidl;
       bi.hwndOwner = GetSafeHwnd();
       bi.pidlRoot = NULL;
       bi.pszDisplayName = pszDirName;
       bi.lpszTitle = _T("选择要批量转换文件所在的目录");
       bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
       bi.lpfn = NULL;
       bi.lParam = 0;
       if ((pidl = ::SHBrowseForFolder(&bi)) != NULL)//调用选择目录对话框
        {
         if (::SHGetPathFromIDList(pidl, pszDirName))//获得所选择的目录
          { 
           file://设置选择的目录为当前目录,以便查找
            SetCurrentDirectory(pszDirName);
            file://定义一个查找
            CFileFind findch1;
            CString strconv;
            CString strsour;
          if(findch1.FindFile("*.CH1"))//在当前目录进行查找
           {
            CFile SourceFile;
            CStdioFile TargetFile;
            BOOL bfindresult;
            do
            {
             file://查找下一个符合条件的文件
              bfindresult= findch1.FindNextFile();
              file://获得查找到的文件名
              strsour=findch1.GetFilePath();
              strconv=strsour;
              file://把文件名转换为小写
              strconv.MakeLower();
              file://把*.ch1类型的文件转换为*.txt
              strconv.Replace(".ch1",".txt");
              file://打开*.ch1类型的文件作为源文件
              SourceFile.Open(strsour,CFile::modeRead);
              file://打开*.txt类型的文件作为目标文件
 
本文章更多内容1 - 2 - 下一页>>
本页地址
相关文章

如何在非MFC扩展Dll中导出class说明及简单例
VC中无LIB时的DLL隐式链接,制作与VC++相符合
图形界面函数GDI32.exe
VC通信控件MSComm详解
DAO的密码?如何打开有密码保护的数据库?
产生线程的问题:error C2440: 'type cast'
如何利用WMI远程重启远程计算机?
通过WMI修改IP,而实现不用重新启动?
如何获得系统服务的运行状态?
怎样写程控制让系统中的某个文件夹共享或取

相关评论


本文章所属分类:首页 Window编程