📄 wzjcommon.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 + -