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

📄 cz_cl.cpp

📁 evc编程,使用数据库软件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	GetDlgItem(IDC_SAVE_ONE)->EnableWindow(false);
	
	saveall();
	com.PortClose();

	CDialog::OnCancel();

}

void CCz_cl::OnCancel()//全站取消,不存盘退出 
{
	// TODO: Add extra cleanup here
	clean();

	com.PortClose();


	CDialog::OnCancel();
}




bool CCz_cl::str_copy(TCHAR dec[], CString src)
{
	dec[0]='\0';
	int len=src.GetLength();

	for(int i=0;i<len; i++)
	{
		dec[i]=src.GetAt(i);
		dec[i+1]='\0';
	}
	return true;
}



void CCz_cl::OnChangeCdg() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function to send the EM_SETEVENTMASK message to the control
	// with the ENM_CHANGE flag ORed into the lParam mask.
	
	// TODO: Add your control notification handler code here
//	GetDlgItem(IDC_SAVE_ONE)->EnableWindow(true);
}
//搜索觇标高
double CCz_cl::search_cbg(int index)
{
	CString str;
	double cbg=-10.0;
	str.Format(_T("%s"),theApp.clsx.GetAt(index)->CDM);
	for(int i=0;i<=index;i++)
	{
		if(str.Compare(theApp.clsx.GetAt(i)->CDM)==0)
		{
			if(theApp.clsx.GetAt(i)->cbg!=-10.0)
				cbg=theApp.clsx.GetAt(i)->cbg;
		}
	}
	return cbg;
}
//设置觇标高
void CCz_cl::set_cbg(int index)
{
	UpdateData(true);
	theApp.clsx.GetAt(index)->cbg=m_cdg;	
}



void CCz_cl::OnKillfocus() 
{
	// TODO: Add your control notification handler code here
	SHSipPreference(AfxGetMainWnd()->m_hWnd,SIP_DOWN);
}

void CCz_cl::OnSetfocus() 
{
	// TODO: Add your control notification handler code here
	SHSipPreference(AfxGetMainWnd()->m_hWnd,SIP_UP);
}
	


void CCz_cl::TOP_strspl()
{
	CString temp,str=theApp.Ser_buf;
//AfxMessageBox(str);
	TCHAR string[100],seps[]   = _T("<?'(+m-*");
	TCHAR *token;

	int i=str.Find('<');
	if(i!=-1)
	{
		wcscpy(string,str.Right(str.GetLength()-i-1));
		token = wcstok( string, seps );
		m_czj=com.widechartodouble(token)*0.0001;
		token = wcstok( NULL, seps );
		m_spj=com.widechartodouble(token)*0.0001;
		m_distance=0.0;
		theApp.Ser_buf[0]='\0';
		//测角 2 3 7 
	}
	i=str.Find('?');

	if(i!=-1)
	{
		//测边 2 3 7
		i+=2;
		wcscpy(string,str.Right(str.GetLength()-i));
		token = wcstok( string, seps );
		m_distance=com.widechartodouble(token)*0.001;
		jl+=m_distance;
		temp.Format(_T("%f"),m_distance);
		wcscat(theApp.JL_buf,temp);
		wcscat(theApp.JL_buf,_T("+"));
		token = wcstok( NULL, seps );
		m_czj=com.widechartodouble(token)*0.0001;
		token = wcstok( NULL, seps );
		m_spj=com.widechartodouble(token)*0.0001;
		}
	
	i=str.Find('\'');
	if(i!=-1)
	{
		wcscpy(string,str.Right(str.GetLength()-i-1));
		token = wcstok( string, seps );
		m_czj=com.widechartodouble(token)*0.00001;
		token = wcstok( NULL, seps );
		m_spj=com.widechartodouble(token)*0.00001;
		m_distance=0.0;
		theApp.Ser_buf[0]='\0';
	}
	
	i=str.Find('(');
	if(i!=-1)
	{
		//测边 2 3 7
		i+=2;
		wcscpy(string,str.Right(str.GetLength()-i));
		token = wcstok( string, seps );
		m_distance=com.widechartodouble(token)*0.0001;
		jl+=m_distance;
		temp.Format(_T("%f"),m_distance);
		wcscat(theApp.JL_buf,temp);
		wcscat(theApp.JL_buf,_T("+"));

		wcscat(theApp.JL_buf,temp);
		wcscat(theApp.JL_buf,_T("+"));
		wcscat(theApp.JL_buf,temp);
		wcscat(theApp.JL_buf,_T("+"));
		wcscat(theApp.JL_buf,temp);
		wcscat(theApp.JL_buf,_T("+"));

		token = wcstok( NULL, seps );
		m_czj=com.widechartodouble(token)*0.00001;
		token = wcstok( NULL, seps );
		m_spj=com.widechartodouble(token)*0.00001;
		}

	UpdateData(false);
	if(theApp.mode>1&&theApp.cj==3)
	{
		GetDlgItem(IDC_STOP)->EnableWindow(false);//测量结束
		GetDlgItem(IDC_SAVE_ONE)->EnableWindow(true);//存盘
		GetDlgItem(IDCANCEL)->EnableWindow(true);
		CloseHandle(theApp.hReadThread);
	}else if(theApp.mode==1)
	{
		GetDlgItem(IDC_STOP)->EnableWindow(false);//测量结束
		GetDlgItem(IDC_SAVE_ONE)->EnableWindow(true);//存盘
		GetDlgItem(IDCANCEL)->EnableWindow(true);
		CloseHandle(theApp.hReadThread);
	}
}

void CCz_cl::split_jl(TCHAR *jl1, TCHAR *jl2, TCHAR *jl3, TCHAR *jl4)
{
	
	TCHAR string[100],seps[]   = _T("+");
	TCHAR *token;

	wcscpy(string,theApp.JL_buf);
	token = wcstok( string, seps );
	wcscpy(jl1,token);
	token = wcstok( string, seps );
	wcscpy(jl2,token);
	token = wcstok( string, seps );
	wcscpy(jl3,token);
	token = wcstok( string, seps );
	wcscpy(jl4,token);
	theApp.Ser_buf[0]='\0';
}

void CCz_cl::save_pz()//盘左数据
{
	UpdateData(true);
	CString str;
	int i;
	if(theApp.spjistrue && theApp.clsx.GetAt(clsx_index)->spj)//水平角
	{		
		i =	search_czj_record(_T("DXSPJ"),theApp.clsx.GetAt(clsx_index)->chs,theApp.clsx.GetAt(clsx_index)->CDM);
		if(i!=-1)
		{
			if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXSPJ")))
			{
				AfxMessageBox(_T("不能打开数据库"));
				return;
			}
			theApp.DataBase.ReadRecord(i);
			str.Format(_T("%f"),m_cdg);

			theApp.DataBase.m_values.SetAt(3,str);
			str.Format(_T("%f"),m_spj);
			theApp.DataBase.m_values.SetAt(4,str);
			theApp.DataBase.MotifyRecord(i);
			theApp.DataBase.CloseTable();

		}
	}
	if(theApp.czjistrue && theApp.clsx.GetAt(clsx_index)->czj)//垂直角
	{
		i =	search_czj_record(_T("DXCZJ"),theApp.clsx.GetAt(clsx_index)->chs,theApp.clsx.GetAt(clsx_index)->CDM);
		if(i!=-1)
		{
			if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXCZJ")))
			{
				AfxMessageBox(_T("不能打开DXCZJ数据库"));
				return;
			}
			theApp.DataBase.ReadRecord(i);
			str.Format(_T("%f"),m_cdg);
			theApp.DataBase.m_values.SetAt(3,str);
			str.Format(_T("%f"),m_czj);
			theApp.DataBase.m_values.SetAt(4,str);
			theApp.DataBase.MotifyRecord(i);
			theApp.DataBase.CloseTable();
		}
	}
	if(m_distance>0)
	if(theApp.jlistrue && theApp.clsx.GetAt(clsx_index)->jl)//距离
	{
		
		str=theApp.JL_buf;

		if(str.GetLength()<=0)
			return;
	
		i =	search_czj_record(_T("DXJL"),theApp.clsx.GetAt(clsx_index)->chs,theApp.clsx.GetAt(clsx_index)->CDM);
	
		if(i>-1)
		{
		
			if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXJL")))
			{
				AfxMessageBox(_T("不能打开数据库"));
				return;
			}	
			theApp.DataBase.ReadRecord(i);
			str.Format(_T("%f"),m_cdg);
			theApp.DataBase.m_values.SetAt(3,str);
	
		//	TCHAR jl1[20],jl2[20],jl3[20],jl4[20];
		//	split_jl(jl1,jl2,jl3,jl4);
			str.Format(_T("%f"),m_distance);
			theApp.DataBase.m_values.SetAt(4,str);
			theApp.DataBase.m_values.SetAt(5,str);
			theApp.DataBase.m_values.SetAt(6,str);
			theApp.DataBase.m_values.SetAt(7,str);
				
			str.Format(_T("%f"),m_distance);
			theApp.DataBase.m_values.SetAt(8,str);
	
			theApp.DataBase.MotifyRecord(i);
			theApp.DataBase.CloseTable();
		}
	}
}

void CCz_cl::save_py()
{
	int i;
	CString str;
	if(theApp.spjistrue && theApp.clsx.GetAt(clsx_index)->spj)
	{
	 	i=search_czj_record(_T("DXSPJ"),theApp.clsx.GetAt(clsx_index)->chs,theApp.clsx.GetAt(clsx_index)->CDM);
		if(i!=-1)
		{
			if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXSPJ")))
			{
				AfxMessageBox(_T("不能打开数据库"));
				return;
			}
			theApp.DataBase.ReadRecord(i);
			
			str.Format(_T("%f"),m_spj);
			theApp.DataBase.m_values.SetAt(5,str);

			theApp.DataBase.MotifyRecord(i);
			theApp.DataBase.CloseTable();
	
		}
	}
	if(theApp.czjistrue && theApp.clsx.GetAt(clsx_index)->czj)
	{
		i=search_czj_record(_T("DXCZJ"),theApp.clsx.GetAt(clsx_index)->chs,theApp.clsx.GetAt(clsx_index)->CDM);
		if(i!=-1)
		{
			if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXCZJ")))
			{
				AfxMessageBox(_T("不能打开数据库"));
				return;
			}
			theApp.DataBase.ReadRecord(i);
			
			str.Format(_T("%f"),m_czj);
			theApp.DataBase.m_values.SetAt(5,str);
			//I A 计算		
			theApp.DataBase.MotifyRecord(i);
			theApp.DataBase.CloseTable();
		}
	}

	if(m_distance>0)
	if(theApp.jlistrue && theApp.clsx.GetAt(clsx_index)->jl)//距离
	{
		str=theApp.JL_buf;
		if(str.GetLength()<=0)
			return;
		i =	search_czj_record(_T("DXJL"),theApp.clsx.GetAt(clsx_index)->chs,theApp.clsx.GetAt(clsx_index)->CDM);
		if(i==-1)
		{
			if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXJL")))
			{
				AfxMessageBox(_T("不能打开数据库"));
				return;
			}	
			theApp.DataBase.ReadRecord(i);
			str.Format(_T("%f"),m_cdg);
			theApp.DataBase.m_values.SetAt(3,str);
	
			//	TCHAR jl1[20],jl2[20],jl3[20],jl4[20];
		//	split_jl(jl1,jl2,jl3,jl4);
			str.Format(_T("%f"),m_distance);
			theApp.DataBase.m_values.SetAt(4,str);
			theApp.DataBase.m_values.SetAt(5,str);
			theApp.DataBase.m_values.SetAt(6,str);
			theApp.DataBase.m_values.SetAt(7,str);
				
			str.Format(_T("%f"),m_distance);
			theApp.DataBase.m_values.SetAt(8,str);
	
			theApp.DataBase.MotifyRecord(i);
			theApp.DataBase.CloseTable();
		}
	}
	
}

double CCz_cl::m_wtof(CString str)
{
	char buf [250];
	buf[0]='\0';

	int i,len=wcslen(str);
	for(i=0;i<len;i++)
	{
		switch(str.GetAt(i))
		{
		case '-':
			buf[i]='-';
			buf[i+1]='\0';
			break;
		case '.':
			buf[i]='.';
			buf[i+1]='\0';
			break;
		case '0':
			buf[i]='0';
			buf[i+1]='\0';
			break;
		case '1':
			buf[i]='1';
			buf[i+1]='\0';
			break;
		case '2':
			buf[i]='2';
			buf[i+1]='\0';
			break;
		case '3':
			buf[i]='3';
			buf[i+1]='\0';
			break;
		case '4':
			buf[i]='4';
			buf[i+1]='\0';
			break;
		case '5':
			buf[i]='5';
			buf[i+1]='\0';
			break;
		case '6':
			buf[i]='6';
			buf[i+1]='\0';
			break;
		case '7':
			buf[i]='7';
			buf[i+1]='\0';
			break;
		case '8':
			buf[i]='8';
			buf[i+1]='\0';
			break;
		case '9':
			buf[i]='9';
			buf[i+1]='\0';
			break;
		}
	}

	return atof(buf);
}

int CCz_cl::spj_xcjs(int chs)//计算方向值 2c f
{
	double F0,L,R,A0=1000,c2;
	CJbjs js;
	CString str;
	int rec,index=0;

//	AfxMessageBox(_T("2"));
	

	if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXSPJ")))
	{
		AfxMessageBox(_T("不能打开DXSPJ数据库"));
		return -1;
	}
	theApp.DataBase.ReadRecord(0);
	TCHAR CDM[20];
	wcscpy(CDM,theApp.DataBase.m_values.GetAt(2));

	theApp.DataBase.CloseTable();
	rec=search_czj_record(_T("DXSPJ"),theApp.clsx.GetAt(clsx_index)->chs,CDM);
	if(rec!=-1)
	{
		theApp.c2=new double[theApp.spj_rec_len];
		
		if(!theApp.DataBase.OpenTable(theApp.DataBase.szFileName,_T("DXSPJ")))
		{
			AfxMessageBox(_T("不能打开DXSPJ数据库"));
			return -1;
		}
		theApp.DataBase.ReadRecord(rec);
		L=m_wtof(theApp.DataBase.m_values.GetAt(4));
		R=m_wtof(theApp.DataBase.m_values.GetAt(5));
		F0=js.fxz_f0(L,R);
		if(theApp.spj_rec_len>4)//带归零向
		{
			theApp.DataBase.ReadRecord(rec+theApp.spj_rec_len);
			L=m_wtof(theApp.DataBase.m_values.GetAt(4));
			R=m_wtof(theApp.DataBase.m_values.GetAt(5));
			
			A0=js.fxz_0_f0(L,R,F0);
			F0=A0;
			str.Format(_T("%f"),F0);
			theApp.DataBase.m_values.SetAt(6,str);
			theApp.DataBase.MotifyRecord(rec+theApp.spj_rec_len);//存盘
		}
		
	//	str.Format(_T("spj_rec_len = %d"),theApp.spj_rec_len);
	//	AfxMessageBox(str);
		for(int i=0;i<theApp.spj_rec_len;i++)
		{
			theApp.DataBase.ReadRecord(i+rec);
		
			L=m_wtof(theApp.DataBase.m_values.GetAt(4));
			R=m_wtof(theApp.DataBase.m_values.GetAt(5));
		
			if(i==0)//第一个水平方向
			{
				str.Format(_T("%f"),F0);
				theApp.DataBase.m_values.SetAt(6,str);
			}else if(theApp.spj_rec_len>4 && i==theApp.spj_rec_len-1)//最后一个水平方向
			{
				str.Format(_T("%f"),F0);
				theApp.DataBase.m_values.SetAt(6,str);
			}
			else
			{
			
				A0=js.fxz(L,R,F0);
				str.Format(_T("%f"),A0);
				theApp.DataBase.m_values.SetAt(6,str);
			}

			c2=js._2C(L,R);
			str.Format(_T("%f"),c2);
			theApp.DataBase.m_values.SetAt(7,str);
		
			theApp.c2[i]=c2;
			

⌨️ 快捷键说明

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