zoukankan      html  css  js  c++  java
  • VC++ MFC 文件处理ANSI

    浏览选择文件夹,读取文件夹的文件列举到Listbox,读取文本文档内容,处理完文档内容,保存到新的文本文档,文本文档格式是ANSI.

    void CFurtherConvertCutCodeView::OnBnClickedButtonBrowser()
    {
    	CString filePath;
    	m_ProgressFile.SetPos(0);
    	m_ListFiles.ResetContent();
    	TCHAR szPath[_MAX_PATH];
    	BROWSEINFO bi;
    	bi.hwndOwner=NULL;
    	bi.pidlRoot=NULL;
    	bi.lpszTitle=_T("文件浏览");
    	bi.pszDisplayName=szPath;
    	bi.ulFlags=BIF_RETURNONLYFSDIRS;
    	bi.lParam=NULL;
    	bi.lpfn=NULL;
    	LPITEMIDLIST pItemIDList=SHBrowseForFolder(&bi);
    	if(pItemIDList)
    	{
    		if(SHGetPathFromIDList(pItemIDList,szPath))
    		filePath=szPath;
    		CFileFind finder;
    		CString strFilenName;
    		BOOL bWorking=finder.FindFile(filePath+"\\*.din");
    		while(bWorking)
    		{
    			bWorking = finder.FindNextFile();
    			strFilenName=(LPCTSTR)finder.GetFileName();  //str为取得一个文件名
    			m_ListFiles.AddString(strFilenName);
    		}
    		
    	}
    	else
    	{
           filePath="";
    	}
    	GetDlgItem(IDC_STATIC_TOTAL)->SetWindowText(_T("0"));
    	GetDlgItem(IDC_STATIC_RUNNING)->SetWindowText(_T("0"));
    	GetDlgItem(IDC_STATIC_Browse)->SetWindowText(filePath);
    
    }
    
    
    void CFurtherConvertCutCodeView::OnBnClickedButtonRun()
    {
    	// TODO: Add your control notification handler code here
    	CString strTotal;
    	CString strRunning;
    	int k=1;
    	CString strFilePath;
    	//添加光顺后程序保存的目录
    	CString strPath;
    	GetDlgItem(IDC_STATIC_Browse)->GetWindowText(strFilePath);
    	CString strFileName;
    	//找出勾选的项目
    	int iSel=m_ListFiles.GetCount();
    	if(iSel>0)
    	{
    		   strPath=strFilePath+_T("\\_GCG261");
    		   CreateDirectory(strPath,NULL);
    	}
    	m_ProgressFile.SetPos(0);
    	int j=0;
    	for(int i=0;i<iSel;i++)
    	{
    	
    		if(m_ListFiles.GetCheck(i)==1)
    		{
    			j++;			
    		}		
    
    	}
    	strTotal.Format(_T("%d"),j);
    	GetDlgItem(IDC_STATIC_TOTAL)->SetWindowText(strTotal);
    	m_ProgressFile.SetRange(0,j);
    	m_ProgressFile.SetStep(1);
    	for(int i=0;i<iSel;i++)
    	{
    		
    		if(m_ListFiles.GetCheck(i)==1)
    		{
    			m_ListFiles.GetText(i,strFileName);
    			ReadCodeFile(strFilePath+"\\"+strFileName,strPath+"\\"+strFileName);
    			m_ProgressFile.StepIt();
    			strRunning.Format(_T("%d"),k++);
                GetDlgItem(IDC_STATIC_RUNNING)->SetWindowText(strRunning);
    		}		
    		
    	}
    }
    void CFurtherConvertCutCodeView::ReadCodeFile(CString strFileName,CString strWriteFileName)
    {
    	CStringList listLines;	
    	string strT;
    	CString strLine;	
    	CString strPartLine;
    	CStdioFile writeFile;
    	bool isG01=false;	
    	bool isAddG261=false;
    	bool isBreak=false;
    	int i;
    	CStdioFile myFile;
    	myFile.Open(strFileName,CFile::modeRead);
    
    	/*CFile mFile;
    	mFile.Open(strWriteFileName,CFile::modeCreate|CFile::modeWrite);*/
    
    	CStdioFile *rFile=new CStdioFile(strWriteFileName,CFile::modeCreate|CFile::modeWrite);
    	//逐行读取
    	while(myFile.ReadString(strLine))
    	{
    		/*CArchive ar(&mFile,CArchive::store); */
    		if(strLine=="M07")
    		{
    			i=0;
    			while(isBreak!=true)
    			{
    				myFile.ReadString(strLine);	
    				i=i+1;
    				if(strLine.Find(_T("G01"))!=-1&&strLine.Find(_T("X"))!=-1&&strLine.Find(_T("Y"))!=-1)
    				{
    					isG01=true;
    					i=1;
    				}
    				if(isG01==true && i==2)
    				{
    					if(strLine.Find(_T("G02"))>-1||strLine.Find(_T("G03"))>-1)
    					{
    						isAddG261=true;	
    						isBreak=true;
    					}
    				}
    				if(strLine.Find(_T("M08"))!=-1)
    				{
    					isBreak=true;
    				}
    				listLines.AddTail(strLine);
    			}//end while
    			isBreak=false;
    			if(isAddG261==true)
    			{
    				strLine="G261\nM07";		      
    			}
    			else
    			{
    				strLine="M07";	
    			}
    		}//end if M07
    		if(strLine.Find(_T("M08"))!=-1&&isAddG261==true)
    		{           
    			strLine="M08\nG260";
    			isAddG261=false;
    		}
    		if(strLine.Find(_T("#TRAFO ON"))!=-1)
    		{
    			strLine="#TRAFO ON\n#CONTOUR MODE [ DEV PATH_DEV=0.2 RELEVANT_PATH=0.1 ]";
    		}
    
    		rFile->WriteString(strLine.GetBuffer());
    		rFile->WriteString(_T("\n"));
    		
    
    		POSITION rPos;
    		rPos=listLines.GetHeadPosition();
    		while(rPos!=NULL)
    		{
    			strPartLine=listLines.GetNext(rPos);		
    			rFile->WriteString(strPartLine.GetBuffer());
    			rFile->WriteString(_T("\n"));
    
    		}
    		listLines.RemoveAll();
    		
    
    	}//end while
    	rFile->Close();
    	delete rFile;
    	
    }
    void CFurtherConvertCutCodeView::WritCodeFile(CString strLine)
    {      
    	///* CString
    	//CStdioFile myFile;
    }
    
    
    
    void CFurtherConvertCutCodeView::OnClickedCheckSelectall()
    {	
    	// TODO: Add your control notification handler code here
    	if(BST_CHECKED==!IsDlgButtonChecked(IDC_CHECK_SelectAll))
    	{
    	
    		SelectCheckList(0);
    	}
    	else
    	{		
    		SelectCheckList(1);
    	}
    }
    void CFurtherConvertCutCodeView::SelectCheckList(int iCheck)
    {
    	int iSel=m_ListFiles.GetCount();
    	for(int i=0;i<iSel;i++)
    	{
    		m_ListFiles.SetCheck(i,iCheck);
    
    	}
    }
    
  • 相关阅读:
    shell day01总结
    PythonDay02
    Python Day01
    802.11X
    IPsec
    Gre封装
    达梦数据库常见问题-命令行工具-主备集群监视器工具
    达梦数据库常见问题-命令行工具-初始化实例工具
    达梦数据库常见问题-命令行工具-快速装载工具
    达梦数据库常见问题-命令行工具-数据检查工具
  • 原文地址:https://www.cnblogs.com/ike_li/p/2849660.html
Copyright © 2011-2022 走看看