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

📄 wzjcommon.cpp

📁 在工程交通行业如测绘部门经常用到角度单位的转换
💻 CPP
字号:
#include "StdAfx.h"
#include "WzjCommon.h"

//通过文件对象打开文本文件供读取文本用
BOOL OpenTextFile(CStdioFile* &pfileOpen, LPCTSTR lpszDefExt, LPCTSTR lpszFilter)
{
	BOOL bIsOpen = FALSE;
	//弹出打开文件对话框
	CFileDialog fileDlg(TRUE,lpszDefExt,NULL,OFN_HIDEREADONLY,lpszFilter,NULL);
	if (IDCANCEL == fileDlg.DoModal() )	
	{
		return bIsOpen;
	}
	//打开文件
	pfileOpen = new CStdioFile();
	if (FALSE == pfileOpen->Open(fileDlg.GetPathName(),CFile::modeRead|CFile::typeText))
	{
		AfxMessageBox(_T("不能打开文件!"));
		return bIsOpen;
	}
	bIsOpen = TRUE;
	return bIsOpen;
}

//通过文件对象打开文本文件供读取文本用
BOOL OpenTextFile(CStdioFile &fileOpen, LPCTSTR lpszDefExt, LPCTSTR lpszFilter)
{
	BOOL bIsOpen = FALSE;
	//弹出打开文件对话框
	CFileDialog fileDlg(TRUE,lpszDefExt, NULL,OFN_HIDEREADONLY,lpszFilter, NULL);
	if (IDCANCEL == fileDlg.DoModal() )	
	{
		return bIsOpen;
	}
	//打开文件
	if (FALSE == fileOpen.Open(fileDlg.GetPathName(),CFile::modeRead|CFile::typeText))
	{
		AfxMessageBox(_T("不能打开文件!"));
		return bIsOpen;
	}
	bIsOpen = TRUE;
	return bIsOpen;
	
}

//读取文本文件中全部文本
BOOL OpenTextFile(CString &szReadContents, LPCTSTR lpszDefExt, LPCTSTR lpszFilter)
{
	BOOL bIsRead = FALSE;
	//利用上面的OpenTextFile函数打开文本文件
	CStdioFile file;
	if (FALSE == OpenTextFile(file, lpszDefExt, lpszFilter)) 
	{
		bIsRead = FALSE;
		return bIsRead;
	}
	//读取文本内容,存放到引用参数中,供返回
	CString szTemp;
	while (	file.ReadString(szTemp))
	{
		szReadContents += szTemp;
		szReadContents += _T("\r\n");
	}
	//文件关闭
	file.Close();
	bIsRead = TRUE;
	return bIsRead;
}

BOOL OpenTextFile(CStdioFile &fileOpen, CString& szPathName, LPCTSTR lpszDefExt, LPCTSTR lpszFilter)//打开文本文件
{
	BOOL bIsOpen = FALSE;
	szPathName = "";
	//弹出打开文件对话框
	CFileDialog fileDlg(TRUE,lpszDefExt, NULL,OFN_HIDEREADONLY,lpszFilter, NULL);
	if (IDCANCEL == fileDlg.DoModal() )	
	{
		return bIsOpen;
	}
	szPathName = fileDlg.GetPathName();
	//打开文件
	if (FALSE == fileOpen.Open(szPathName, CFile::modeRead|CFile::typeText))
	{
		AfxMessageBox(_T("不能打开文件!"));
		return bIsOpen;
	}
	bIsOpen = TRUE;
	return bIsOpen;
}
BOOL OpenTextFile(CString &szReadContents, CString& szPathName, LPCTSTR lpszDefExt, LPCTSTR lpszFilter)//打开文本文件并读取到字符串中
{
	BOOL bIsRead = FALSE;
	//利用上面的OpenTextFile函数打开文本文件
	CStdioFile file;
	if (FALSE == OpenTextFile(file, szPathName, lpszDefExt, lpszFilter)) 
	{
		bIsRead = FALSE;
		return bIsRead;
	}
	//读取文本内容,存放到引用参数中,供返回
	CString szTemp;
	while (	file.ReadString(szTemp))
	{
		szReadContents += szTemp;
		szReadContents += _T("\r\n");
	}
	//文件关闭
	file.Close();
	bIsRead = TRUE;
	return bIsRead;
}
//关闭文件指针打开的文本文件
BOOL CloseTextFile(CStdioFile* &pfileClose)
{
	BOOL bIsClose = FALSE;
	//关闭文件
	pfileClose->Close();
	//释放文件指针
	if (pfileClose)
	{
		delete pfileClose;
		pfileClose = NULL;
	}
	return bIsClose;
}

//通过文件对象保存初始字符串到文件中,还可以继续保存字符串
BOOL SaveTextFile(CStdioFile &fileSave,CString szWriteContents, LPCTSTR lpszDefExt, LPCTSTR lpszFilter)
{
	BOOL bIsSave = FALSE;
	//弹出保存文件对话框
	CFileDialog fileDlg(FALSE,lpszDefExt,0,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		lpszFilter);
	if (IDCANCEL == fileDlg.DoModal())
	{
		return bIsSave;
	}
	//创建或打开保存文件
	if (FALSE == fileSave.Open(fileDlg.GetPathName(), CFile::modeCreate| CFile::modeWrite | CFile::typeText))
	{
		AfxMessageBox(_T("保存文件失败"));
		return bIsSave; 
	}
	//写入传该函数第二个参数传入的字符串,若没有就存入空
	fileSave.WriteString(szWriteContents); 
	bIsSave = TRUE;
	return bIsSave;
}

//通过文件指针保存初始字符串到文件中,还可继续保存字符串
BOOL SaveTextFile(CStdioFile* pfileSave,CString szWriteContents )
{
	BOOL bIsSave = FALSE;
	//弹出保存对话框
	CFileDialog fileDlg(FALSE, _T("txt"),0,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("文本文件(*.txt)|*.txt"));
	if (IDCANCEL == fileDlg.DoModal())
	{
		return bIsSave;
	}
	//创建或打开保存文件
	if (FALSE == pfileSave->Open(fileDlg.GetPathName(), CFile::modeCreate| CFile::modeWrite | CFile::typeText))
	{
		AfxMessageBox(_T("保存文件失败"));
		return bIsSave; 
	}
	//写入传该函数第二个参数传入的字符串,若没有就存入空
	pfileSave->WriteString(szWriteContents); 
	bIsSave = TRUE;
	return bIsSave;
}

//把字符串写入文本文件中
BOOL SaveTextFile(CString szWriteContents, LPCTSTR lpszDefExt, LPCTSTR lpszFilter)
{
	BOOL bIsSave = FALSE;
	//通过本文件中SaveTextFile()写入要保存的字符串到文件中
	CStdioFile fileSave;
	if (FALSE == SaveTextFile(fileSave,szWriteContents,lpszDefExt,lpszFilter))
	{		
		return bIsSave;
	}
	//关闭文件
	fileSave.Close();
	bIsSave = TRUE;	
	return bIsSave;
}

BOOL SaveTextFile(CStdioFile &fileSave, CString& szPathName, CString szWriteContents /*= _T("")*/,
								 LPCTSTR lpszDefExt, LPCTSTR lpszFilter /*= _T("文本文件(*.txt)|*.txt")*/ )//保存文本文件
{
	BOOL bIsSave = FALSE;
	//弹出保存文件对话框
	CFileDialog fileDlg(FALSE,lpszDefExt,0,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		lpszFilter);
	if (IDCANCEL == fileDlg.DoModal())
	{
		return bIsSave;
	}
	szPathName = fileDlg.GetPathName();
	//创建或打开保存文件
	if (FALSE == fileSave.Open(szPathName, CFile::modeCreate| CFile::modeWrite | CFile::typeText))
	{
		AfxMessageBox(_T("保存文件失败"));
		return bIsSave; 
	}
	//写入传该函数第二个参数传入的字符串,若没有就存入空
	fileSave.WriteString(szWriteContents); 
	bIsSave = TRUE;
	return bIsSave;
}

BOOL SaveTextFile(CString szWriteContents, CString& szPathName, LPCTSTR lpszDefExt/* = _T("txt")*/,
				  LPCTSTR lpszFilter /* =_T("文本文件(*.txt)|*.txt")*/ )//保存字符串到txt文本文件中
{
	BOOL bIsSave = FALSE;
	//通过本文件中SaveTextFile()写入要保存的字符串到文件中
	CStdioFile fileSave;
	if (FALSE == SaveTextFile(fileSave, szPathName, szWriteContents,lpszDefExt,lpszFilter))
	{		
		return bIsSave;
	}
	//关闭文件
	fileSave.Close();
	bIsSave = TRUE;	
	return bIsSave;
}

								 
//创建二维整形指针
BOOL New2Array(int** &pnArray,WORD wRow,WORD wColumn)
{
	BOOL bIsNew = FALSE;
	pnArray = new int* [wRow];	
	for (int i = 0; i < wRow; i++)
	{
		pnArray[i] = new int[wColumn];
	}
	bIsNew = TRUE;
	return bIsNew;
}

//创建二维float指针
BOOL New2Array(float** &pfArray,WORD wRow,WORD wColumn)
{
	BOOL bIsNew = FALSE;
	pfArray = new float* [wRow];
	for (int i = 0; i < wRow; i++)
	{
		pfArray[i] = new float[wColumn];
	}	
	bIsNew = TRUE;
	return bIsNew;
}

//创建二维double指针
BOOL New2Array(double** &pdArray,WORD wRow,WORD wColumn)
{
	BOOL bIsNew = FALSE;
	pdArray = new double* [wRow];	
	for (int i = 0; i < wRow; i++)
	{
		pdArray[i] = new double[wColumn];
	}
	bIsNew = TRUE;
	return bIsNew;
}

//创建二维CString指针
BOOL New2Array(CString** &pszArray,WORD wRow,WORD wColumn)
{
	BOOL bIsNew = FALSE;	
	pszArray = new CString *[wRow];
	for (int i = 0; i < wRow; i++)
	{
		pszArray[i] = new CString[wColumn];
	}
	bIsNew = TRUE;
	return bIsNew;
}



//创建三维int指针
BOOL New3Array(int*** &pnArray,WORD wSta,WORD wObser,WORD wItem)
{
	BOOL bIsNew = FALSE;
	pnArray = new int** [wSta]; //station
	for (int i = 0; i < wSta; i++)
	{
		pnArray[i] = new int* [wObser]; //observation
		if (!pnArray[i])
		{
			AfxMessageBox(_T("分配内存失败1"));
			bIsNew = FALSE;
			return bIsNew;
		}
		for (int j = 0; j < wObser; j++)
		{
			pnArray[i][j] = new int [wItem];
			if (!pnArray[i][j])
			{
				AfxMessageBox(_T("分配内存失败!"));
				bIsNew = FALSE;
				return bIsNew;
			}
		}
	}
	bIsNew = TRUE;
	return bIsNew;
}

//创建三维float指针
BOOL New3Array(float*** &pfArray,WORD wSta,WORD wObser,WORD wItem)
{
	BOOL bIsNew = FALSE;
	pfArray = new float** [wSta]; //station
	for (int i = 0; i < wSta; i++)
	{
		pfArray[i] = new float* [wObser]; //observation
		if (!pfArray[i])
		{
			AfxMessageBox(_T("分配内存失败!"));
			bIsNew = FALSE;
			return bIsNew;
		}
		for (int j = 0; j < wObser; j++)
		{
			pfArray[i][j] = new float [wItem];
			if (!pfArray[i][j])
			{
				AfxMessageBox(_T("分配内存失败!"));
				bIsNew = FALSE;
				return bIsNew;
			}
		}
	}
	bIsNew = TRUE;
	return bIsNew;
}

//创建三维double指针
BOOL New3Array(double*** &pdArray,WORD wSta,WORD wObser,WORD wItem)
{
	BOOL bIsNew = FALSE;
	pdArray = new double** [wSta]; //station
	for (int i = 0; i < wSta; i++)
	{
		pdArray[i] = new double* [wObser]; //observation
		if (!pdArray[i])
		{
			AfxMessageBox(_T("分配内存失败!"));
			bIsNew = FALSE;
			return bIsNew;
		}
		for (int j = 0; j < wObser; j++)
		{
			pdArray[i][j] = new double [wItem];
			if (!pdArray[i][j])
			{
				AfxMessageBox(_T("分配内存失败!"));
				bIsNew = FALSE;
				return bIsNew;
			}
		}
	}
	bIsNew = TRUE;
	return bIsNew;
}

//创建三维CString指针
BOOL New3Array(CString*** &pszArray, WORD wSta, WORD wObser, WORD wItem)
{
	BOOL bIsNew = FALSE;
	pszArray = new CString** [wSta]; //station
	for (int i = 0; i < wSta; i++)
	{
		pszArray[i] = new CString* [wObser]; //observation
		if (!pszArray[i])
		{
			AfxMessageBox(_T("分配内存失败!"));
			bIsNew = FALSE;
			return bIsNew;
		}
		for (int j = 0; j < wObser; j++)
		{
			pszArray[i][j] = new CString [wItem];
			if (!pszArray[i][j])
			{
				AfxMessageBox(_T("分配内存失败!"));
				bIsNew = FALSE;
				return bIsNew;
			}
		}
	}
	bIsNew = TRUE;
	return bIsNew;
}
//释放二维int指针
BOOL Delete2Array(int** &pnArray,WORD wRow)
{
	BOOL bIsDelete = FALSE;
	for (int i = 0; i < wRow; i++)
	{
		if (pnArray[i])
		{
			delete []pnArray[i];
			pnArray[i] = NULL;
		}
	}	
	if (pnArray)
	{
		delete []pnArray;
		pnArray = NULL;
	}
	bIsDelete = TRUE;
	return bIsDelete;
}

//释放二维float指针
BOOL Delete2Array(float** &pfArray,WORD wRow)
{
	BOOL bIsDelete = FALSE;
	for (int i = 0; i < wRow; i++)
	{
		if (pfArray[i])
		{
			delete []pfArray[i];
			pfArray[i] = NULL;
		}
	}	
	if (pfArray)
	{
		delete []pfArray;
		pfArray = NULL;
	}
	bIsDelete = TRUE;
	return bIsDelete;
}

//释放二维double指针
BOOL Delete2Array(double** &pdArray,WORD wRow)
{
	BOOL bIsDelete = FALSE;
	if (!pdArray)
	{
		return TRUE;
	}
	for (int i = 0; i < wRow; i++)
	{
		if (pdArray[i])
		{
			delete []pdArray[i];
			pdArray[i] = NULL;
		}
	}	
	if (pdArray)
	{
		delete []pdArray;
		pdArray = NULL;
	}
	bIsDelete = TRUE;
	return bIsDelete;
}

//释放二维CString指针
BOOL Delete2Array(CString** &pszArray, WORD wRow)
{
	BOOL bIsDelete = FALSE;
	for (int i = 0; i < wRow; i++)
	{
		if (pszArray[i])
		{
			delete []pszArray[i];
			pszArray[i] = NULL;
		}
	}	
	if (pszArray)
	{
		delete []pszArray;
		pszArray = NULL;
	}
	bIsDelete = TRUE;
	return bIsDelete;
}



//释放三维int指针
BOOL Delete3Array(int*** &pnArray,WORD wSta,WORD wObser)
{
	BOOL bIsDelete = FALSE;	
	//释放wObser级指针
	int i = 0;
	for (i = 0; i < wSta; i++)
	{
		for (int j = 0; j < wObser; j++)
		{
			if (pnArray)
			{
				delete []pnArray[i][j];
				pnArray[i][j] = NULL;
			}
		}
	}
	//释放wSta级指针
	for (i = 0; i < wSta; i++)
	{
		delete  []pnArray[i];
		pnArray[i] = NULL;
	}		
	//释放总指针
	if (pnArray)
	{
		delete []pnArray;
		pnArray = NULL;
	}

	bIsDelete = TRUE;
	return bIsDelete;
}

//释放三维float指针
BOOL Delete3Array(float*** &pfArray,WORD wSta,WORD wObser)
{
	BOOL bIsDelete = FALSE;	
	int i = 0;
	//释放wObser级指针
	for (i = 0; i < wSta; i++)
	{
		for (int j = 0; j < wObser; j++)
		{
			if (pfArray)
			{
				delete []pfArray[i][j];
				pfArray[i][j] = NULL;
			}
		}
	}
	//释放wSta级指针
	for (i = 0; i < wSta; i++)
	{
		delete  []pfArray[i];
		pfArray[i] = NULL;
	}		
	//释放总指针
	if (pfArray)
	{
		delete []pfArray;
		pfArray = NULL;
	}

	bIsDelete = TRUE;
	return bIsDelete;
}

//释放三维double指针
BOOL Delete3Array(double*** &pdArray,WORD wSta,WORD wObser)
{
	BOOL bIsDelete = FALSE;	
	int i = 0;
	//释放wObser级指针
	for (i = 0; i < wSta; i++)
	{
		for (int j = 0; j < wObser; j++)
		{
			if (pdArray)
			{
				delete []pdArray[i][j];
				pdArray[i][j] = NULL;
			}
		}
	}
	//释放wSta级指针
	for (i = 0; i < wSta; i++)
	{
		delete  []pdArray[i];
		pdArray[i] = NULL;
	}		
	//释放总指针
	if (pdArray)
	{
		delete []pdArray;
		pdArray = NULL;
	}
	bIsDelete = TRUE;
	return bIsDelete;
}

BOOL Delete3Array(CString*** &pszArray, WORD wSta, WORD wObser)
{
	BOOL bIsDelete = FALSE;	
	int i = 0;
	//释放wObser级指针
	for (i = 0; i < wSta; i++)
	{
		for (int j = 0; j < wObser; j++)
		{
			if (pszArray)
			{
				delete []pszArray[i][j];
				pszArray[i][j] = NULL;
			}
		}
	}
	//释放wSta级指针
	for (i = 0; i < wSta; i++)
	{
		delete  []pszArray[i];
		pszArray[i] = NULL;
	}		
	//释放总指针
	if (pszArray)
	{
		delete []pszArray;
		pszArray = NULL;
	}
	bIsDelete = TRUE;
	return bIsDelete;
}


//获得int数据字符串
CString GetStr(int nData)
{
	CString szInt;
	szInt.Format(_T("%d"),nData);
	return szInt;
}

CString GetStr(long lData)
{
	CString szLog;
	szLog.Format(_T("%ld"),lData);
	return szLog;
}

CString GetStr(float fData,int nPri,int nInt)
{
	CString szFormat;
	szFormat.Format(_T("%d.%d"),nInt,nPri);
	szFormat = _T("%") + szFormat + _T("f");
	CString szReturn;
	szReturn.Format(szFormat,fData);
	return szReturn;	
}

CString GetStr(double dData,int nPri,int nInt)
{
	CString szFormat;
	szFormat.Format(_T("%d.%d"),nInt,nPri);
	szFormat = _T("%") + szFormat + _T("f");
	CString szReturn;
	szReturn.Format(szFormat,dData);
	return szReturn;
}

⌨️ 快捷键说明

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