⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgconfig.cpp

📁 使用vc++技术实现光电机串口通信管理程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		
		if(m_CtrlListPlan.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
		{
			CString filename;
			filename =strDir+"\\"+m_CtrlListPlan.GetItemText(i,0)+".txt";
			CStdioFile sfPlan;
			CString strTemp;
			if(!sfPlan.Open(filename,CFile::modeRead))
			{
				AfxMessageBox("文件没打开");
			}
			else
			{
			
				int iLen=sfPlan.GetLength();
				char * pBuf=new char[iLen+1];
				sfPlan.Read(pBuf,iLen);
				pBuf+='\0';
				strTemp=pBuf;
				int nPos=strTemp.Find("]");
				m_strTXData=strTemp.Mid(nPos+1,iLen-nPos-1);
				m_strTXData.TrimLeft("\n");
//////////////////////////////////////////////////////////////////////////
					int icnAim1=m_CtrSourceA.GetCount();
					if(icnAim1>0)
					{	
						
						for(int i=0;i<icnAim1;i++)
						{
							m_CtrSourceA.DeleteString(0);
						}
						
					}
					int icnAim2=m_CtrSourceB.GetCount();
					if(icnAim2>0)
					{
						for(int i=0;i<icnAim2;i++)
						{
							m_CtrSourceB.DeleteString(0);
						}
					}
					int icnAim3=m_CtrSourceC.GetCount();
					if(icnAim3>0)
					{
						for(int i=0;i<icnAim3;i++)
						{
							m_CtrSourceC.DeleteString(0);
						}
					}
					int icnAim4=m_CtrSourceD.GetCount();
					if(icnAim4>0)
					{
						for(int i=0;i<icnAim4;i++)
						{
							m_CtrSourceD.DeleteString(0);
						}
					}
				InitListBox();//删除目的,初始化源
//////////////////////////////向目的中添加数据////////////////////////////////////////////
				int iLenPlan =m_strTXData.GetLength();	
				iLenPlan=iLenPlan/3;
				int iIdx=0;
				while(iIdx<iLenPlan)
				{					
					CString strGetTs;
					strGetTs=m_strTXData.Mid(0,2);
					for(int its=0;its<128;its++)
					{
						CString strTemp;
						strTemp=staTsBin.GetAt(its);
						CString strTSTemp;
						strTSTemp=staTsStr.GetAt(its);
						if(strGetTs==strTemp)
						{
							its=128;
							if(iIdx<32)
							{	
								if(strTSTemp.Find("ATS")>=0)
								{
									m_CtrAim1.InsertString(iIdx,strTSTemp,BLACK);
								}
								else if(strTSTemp.Find("BTS")>=0)
								{
									m_CtrAim1.InsertString(iIdx,strTSTemp,GREEN);
								}
								else if(strTSTemp.Find("CTS")>=0)
								{
									m_CtrAim1.InsertString(iIdx,strTSTemp,BLUE);
								}
								else
								{
									m_CtrAim1.InsertString(iIdx,strTSTemp,YELLOW);
								}
								
								
							}
							else if(iIdx>=32 &&iIdx<64)
							{
								if(strTSTemp.Find("ATS")>=0)
								{
									m_CtrAim2.InsertString(iIdx-32,strTSTemp,RED);
								}
								else if(strTSTemp.Find("BTS")>=0)
								{
									m_CtrAim2.InsertString(iIdx-32,strTSTemp,BLACK);
								}
								else if(strTSTemp.Find("CTS")>=0)
								{
									m_CtrAim2.InsertString(iIdx-32,strTSTemp,BLUE);
								}
								else
								{
									m_CtrAim2.InsertString(iIdx-32,strTSTemp,YELLOW);
								}							
							}
							else if(iIdx>=64 &&iIdx<96)
							{
								if(strTSTemp.Find("ATS")>=0)
								{
									m_CtrAim3.InsertString(iIdx-64,strTSTemp,RED);
								}
								else if(strTSTemp.Find("BTS")>=0)
								{
									m_CtrAim3.InsertString(iIdx-64,strTSTemp,GREEN);
								}
								else if(strTSTemp.Find("CTS")>=0)
								{
									m_CtrAim3.InsertString(iIdx-64,strTSTemp,BLACK);
								}
								else
								{
									m_CtrAim3.InsertString(iIdx-64,strTSTemp,YELLOW);
								}							

							
							}
							else if(iIdx>=96 &&iIdx<128)
							{
								if(strTSTemp.Find("ATS")>=0)
								{
									m_CtrAim4.InsertString(iIdx-96,strTSTemp,RED);
								}
								else if(strTSTemp.Find("BTS")>=0)
								{
									m_CtrAim4.InsertString(iIdx-96,strTSTemp,GREEN);
								}
								else if(strTSTemp.Find("CTS")>=0)
								{
									m_CtrAim4.InsertString(iIdx-96,strTSTemp,BLUE);
								}
								else
								{									
									m_CtrAim4.InsertString(iIdx-96,strTSTemp,BLACK);
								}							
								
							}
							strTemp+=" ";
							m_strTXData.Replace(strTemp,"");
							iIdx++;
///////////////删除目的中的源的值///////////////////////////////////////////////////////////
							if(strTSTemp.Find("ATS")!=-1)
							{
								
							//	int iFindIdx;
								CString strGetText;
								for(int iDx=0;iDx<m_CtrSourceA.GetCount();iDx++)
								{
									m_CtrSourceA.GetText(iDx,strGetText);
									if(strGetText==strTSTemp)
									{
										m_CtrSourceA.DeleteString(iDx);
										iDx=m_CtrSourceA.GetCount();
										
									}
								}
							}
							else 	if(strTSTemp.Find("BTS")!=-1)
							{
								
							//	int iFindIdx;
								CString strGetText;
								for(int iDx=0;iDx<m_CtrSourceB.GetCount();iDx++)
								{
									m_CtrSourceB.GetText(iDx,strGetText);
									if(strGetText==strTSTemp)
									{
										m_CtrSourceB.DeleteString(iDx);
										iDx=m_CtrSourceB.GetCount();
										
									}
								}
							}
							else 	if(strTSTemp.Find("CTS")!=-1)
							{
								
							//	int iFindIdx;
								CString strGetText;
								for(int iDx=0;iDx<m_CtrSourceC.GetCount();iDx++)
								{
									m_CtrSourceC.GetText(iDx,strGetText);
									if(strGetText==strTSTemp)
									{
										m_CtrSourceC.DeleteString(iDx);
										iDx=m_CtrSourceC.GetCount();
										
									}
								}
							}
							else 	if(strTSTemp.Find("DTS")!=-1)
							{
								
							//	int iFindIdx;
								CString strGetText;
								for(int iDx=0;iDx<m_CtrSourceD.GetCount();iDx++)
								{
									m_CtrSourceD.GetText(iDx,strGetText);
									if(strGetText==strTSTemp)
									{
										m_CtrSourceD.DeleteString(iDx);
										iDx=m_CtrSourceD.GetCount();
										
									}
								}
							}

						
							strGetTs=m_strTXData.Mid(0,2);
						}
						
					}
				}
			m_strTXData="";
			UpdateData(false);
//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
				

			}
			sfPlan.Close();
		}
	}
	UpdateData(false);
	*pResult = 0;
	
}
void CDlgConfig::WriteConfig(CString strConfig)
{
		int iLenSentf;
		CDlgAllStaSet dlgalstaset;
		dlgalstaset.GetModulePath(strLogPath,NULL);
		CString strFilelast,strFilelast1;
		strFilelast1=strLogPath+"lastSent1.txt";
		strFilelast=strLogPath+"lastSent.txt";
		if(sfMessTemp.Open(strFilelast,CFile::modeRead))
		{
			iLenSentf=sfMessTemp.GetLength();
		}
		sfMessTemp.Close();
			if(iLenSentf>5000)
			{
				if(sfMessTemp.Open(strFilelast1,CFile::modeRead))//如果能打开就是文件存在
				{
					sfMessTemp.Close();
					sfMessTemp.Remove(strFilelast1);//如果存在,就把他删除;
					sfMessTemp.Rename(strFilelast,strFilelast1);//如果不存在,则可以进行重命名;
				}
				else
				{
					sfMessTemp.Rename(strFilelast,strFilelast1);//如果不存在,则可以进行重命名;
				}				
				if(sfMessTemp.Open(strFilelast,CFile::modeCreate|CFile::modeWrite))
				{
					sfMessTemp.SeekToEnd();
					sfMessTemp.WriteString(strConfig+"\r\n");
				}	
				sfMessTemp.Close();
			}
			else
			{
			
				if(sfMessTemp.Open(strFilelast,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite))
				{
					sfMessTemp.SeekToEnd();
					sfMessTemp.WriteString(strConfig+"\r\n");				
				}
				sfMessTemp.Close();

			}
}

void CDlgConfig::OnBtnSave() 
{
	// TODO: Add your control notification handler code here
	OnBtnOk();
	
	for(int its=127;its>=0;its--)
	{
		m_strTXData.Replace(staTsStr.GetAt(its),staTsBin.GetAt(its));	
	}


	CString strFileName;
	CString strPlan;

		int iNum=nCntPlan+1;
		bool bWorking=true;
		while (bWorking)
		{
			strFileName.Format("方案%d",iNum);
			for(int i=0;i<nCntPlan;i++)
			{	
				CString strTempName;
				strTempName=straPlan.GetAt(i);
				if(strTempName==strFileName)
				{
					iNum+=1;
					i=nCntPlan;
					bWorking=true;
				}
				else
				{
					bWorking=false;
				}
			}
		}
		CStdioFile sfPlan;
	strPlan=strFileName;
	CDlgAllStaSet dlgalstaset;
	dlgalstaset.GetModulePath(strLogPath,NULL);
	strFileName=strLogPath+"plan\\"+strFileName+".txt";
	if(sfPlan.Open(strFileName,CFile::modeCreate|CFile::modeWrite))
	{
		nCntPlan++;
		sfPlan.WriteString("["+m_strNote+"]"+"\n");
		int iIdx =m_CtrlListPlan.InsertItem(0,strPlan);
		m_CtrlListPlan.SetItemText(iIdx,1,"["+m_strNote+"]");
		sfPlan.WriteString(m_strTXData);
		straPlan.Add(strPlan);	
	}
		sfPlan.Close();

}

void CDlgConfig::OnBtnRightato1() 
{
	
	// TODO: Add your control notification handler code here
	/*
	CString strSel;
	int iSelIndex =m_CtrSourceA.GetCurSel();
	if(iSelIndex>=0)
	{
	m_CtrSourceA.GetText(iSelIndex,strSel);
	m_CtrSourceA.DeleteString(iSelIndex);
	int iselAim =m_CtrAim1.GetCurSel();
	if(iselAim>=0)
	{
	m_CtrAim1.InsertString(m_CtrAim1.GetCurSel()+1,strSel);
	}
	else
	{
	m_CtrAim1.AddString(strSel);
	}
	
	  }
	*/

	CStringArray straSels;
	int nCount = m_CtrSourceA.GetSelCount();
	if(nCount>0)
	{
		
		CArray<int,int> aryListBoxSel;
		
		aryListBoxSel.SetSize(nCount);
		m_CtrSourceA.GetSelItems(nCount,aryListBoxSel.GetData());
		for(int i=0; i<nCount;i++)
		{
			CString Temp;
			m_CtrSourceA.GetText(aryListBoxSel[i], Temp);//获得每项的文字保存在Temp
			straSels.Add(Temp);
		}
		int nAimCn;
		nAimCn=m_CtrAim1.GetCount();
		int nCurSelAim;
		nCurSelAim =m_CtrAim1.GetCurSel();
		if(nAimCn>0 &&nCurSelAim>0&&CDlgConfig::nSel1!=-1)
		{		
			for(int j=0;j<nCount;j++)
			{
				
				m_CtrAim1.InsertString(nCurSelAim+j,straSels.GetAt(j),BLACK);	
				
			}			

		}
		
		else
		{
			for(int k=0;k<nCount;k++)
			{
				m_CtrAim1.AddString(straSels.GetAt(k),BLACK);
			}
			
		}
	
	
		int iSelCnt=0;
		for(int m=m_CtrSourceA.GetCount()-1;m>=0;m--)
		{
			
			int nIdx;
			nIdx=m_CtrSourceA.GetCurSel();
			if(nIdx>=0)
			{
				m_CtrSourceA.DeleteString(nIdx);			
				iSelCnt++;
				if (iSelCnt==nCount)
				{
					return;
				}
			}
		}

		m_CtrAim1.SetSel(-1,false);
		
	}
	
}

void CDlgConfig::OnBtnRightato2() 
{
	// TODO: Add your control notification handler code here
	CStringArray straSels;
	int nCount = m_CtrSourceA.GetSelCount();
	if(nCount>0)
	{
		CArray<int,int> aryListBoxSel;
		
		aryListBoxSel.SetSize(nCount);
		m_CtrSourceA.GetSelItems(nCount,aryListBoxSel.GetData());
		for(int i=0; i<nCount;i++)
		{
			CString Temp;
			m_CtrSourceA.GetText(aryListBoxSel[i], Temp);//获得每项的文字保存在Temp
			straSels.Add(Temp);
		}
	/*	for(int j=0;j<nCount;j++)
		{
			m_CtrAim2.AddString(straSels.GetAt(j),RED);
		}
		int iSelCnt=0;
		for(int m=m_CtrSourceA.GetCount()-1;m>=0;m--)
		{
			
			int nIdx;
			nIdx=m_CtrSourceA.GetCurSel();
			if(nIdx>=0)
			{
				m_CtrSourceA.DeleteString(nIdx);			
				iSelCnt++;
				if (iSelCnt==nCount)
				{
					return;
				}
			}
		}
		*/
		int nAimCn;
		nAimCn=m_CtrAim2.GetCount();
		int nCurSelAim;
		nCurSelAim =m_CtrAim2.GetCurSel();
		if(nAimCn>0 &&nCurSelAim>0&&CDlgConfig::nSel2!=-1)
		{		
			for(int j=0;j<nCount;j++)
			{
				
				m_CtrAim2.InsertString(nCurSelAim+j,straSels.GetAt(j),RED);		
			}			

		}
		
		else
		{
			for(int k=0;k<nCount;k++)
			{
				m_CtrAim2.AddString(straSels.GetAt(k),RED);
			}
			
		}
		int iSelCnt=0;
		for(int m=m_CtrSourceA.GetCount()-1;m>=0;m--)
		{
			
			int nIdx;
			nIdx=m_CtrSourceA.GetCurSel();
			if(nIdx>=0)
			{
				m_CtrSourceA.DeleteString(nIdx);			
				iSelCnt++;
				if (iSelCnt==nCount)
				{
					return;
				}
			}
		}
		m_CtrAim2.SetSel(-1,false);
	}
}

void CDlgConfig::OnBtnRightato3() 
{
	// TODO: Add your control notification handler code here
	CStringArray straSels;
	int nCount = m_CtrSourceA.GetSelCount();
	if(nCount>0)
	{
		CArray<int,int> aryListBoxSel;
		
		aryListBoxSel.SetSize(nCount);
		m_CtrSourceA.GetSelItems(nCount,aryListBoxSel.GetData());
		for(int i=0; i<nCount;i++)
		{
			CString Temp;
			m_CtrSourceA.GetText(aryListBoxSel[i], Temp);//获得每项的文字保存在Temp
			straSels.Add(Temp);
		}
	/*	for(int j=0;j<nCount;j++)
		{
			m_CtrAim3.AddString(straSels.GetAt(j),RED);
		}
		int iSelCnt=0;
		for(int m=m_CtrSourceA.GetCount()-1;m>=0;m--)
		{
			
			int nIdx;
			nIdx=m_CtrSourceA.GetCurSel();
			if(nIdx>=0)
			{
				m_CtrSourceA.DeleteString(nIdx);			
				iSelCnt++;
				if (iSelCnt==nCount)
				{
					return;
				}
			}
		}
		*/
		int nAimCn;
		nAimCn=m_CtrAim3.GetCount();
		int nCurSelAim;
		nCurSelAim =m_CtrAim3.GetCurSel();
		if(nAimCn>0 &&nCurSelAim>0&&CDlgConfig::nSel3!=-1)
		{		
			for(int j=0;j<nCount;j++)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -