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

📄 cvenus.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
	CString *pStr;
	HANDLE     hSearch; 
	WIN32_FIND_DATA FileData; 
	CString       strOpenFile; 

	if(m_btProjectType == 0x00)
	{
		AfxMessageBox(_T("请选择工程!"), MB_ICONINFORMATION);
		return FALSE;
	}
	
	if(m_cBaseFilePath.IsEmpty())
	{
		strOpenFile = GetOpenFileName(0, FALSE);
		if(strOpenFile.IsEmpty())
		{
			return false;
		}
		
		hSearch = FindFirstFile(strOpenFile, &FileData); 
		if (hSearch != INVALID_HANDLE_VALUE) 
		{ 
			if (AfxMessageBox(_T("该文件已存在,覆盖它吗?"),MB_YESNO|MB_ICONQUESTION)== IDNO)
				return false;
		} 
		
	}
	else
		strOpenFile = m_cBaseFilePath;

	sInputDataParm *pInputParm = new sInputDataParm;
	if(m_btProjectType != 0x0E)//经济评价
	{
		//sInputDataParm *pInputParm = new sInputDataParm;
		GetReadFileParm(pInputParm);

		// 检查输入合法性
		if( !m_pMainDlg->CheckInput(m_btProjectType) )
		{
			return FALSE;
		}
		pStr = m_pMainDlg->GetInputData(m_btProjectType, pInputParm);
	}
	else
	{
		pStr = m_pMainDlg->GetInputData(m_btProjectType, NULL);
	}

	CStdioFile   file;

	if( !file.Open(strOpenFile, CFile::modeWrite | CFile::modeCreate) )
	{
		return FALSE;
	}
	
	// 写表格数据
	if(m_btProjectType != 0x0E)
	{
		for(int i = 0; i < pInputParm->iTotalDataNum; i++)
		{
			try
			{
				file.WriteString(pStr[i]);
			}
			catch (CFileException exception1)
			{
				Beep(650, 700);
				AfxMessageBox(_T("写文件出错!"), MB_ICONINFORMATION);
				return FALSE;
			}
		}
	}
	else
	{
		for(int i = 0; i < 65 * 73 + 15; i++)
		{
			try
			{
				file.WriteString(pStr[i] + _T("\n"));
			}
			catch (CFileException exception1)
			{
				Beep(650, 700);
				AfxMessageBox(_T("写文件出错!"), MB_ICONINFORMATION);
				return FALSE;
			}
		}
	}

	file.Close();
	m_bModifyData   = FALSE;

	m_cBaseFilePath = strOpenFile;
	BaseFileChanged();

	if(pInputParm != NULL)
		delete pInputParm;

	return TRUE;
}

/*************************************************************************
 *
 * GetExtName()
 *
 * 功  能: 得到文件后缀名
 *
 * 参  数: int type:   处理类型
 *         
 * 返回值: 无
 *
 *************************************************************************/
void CCVenusApp::GetExtName(int type, CString *pStr) 
{
	CString fileExtStr;

	if(pStr == NULL) return;

	switch(m_btProjectType)
	{
	case 0x01: // 工艺初选
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DGC";
			break;
		case 1: // 计算结果
			fileExtStr    = "RGC";
			break;
		case 2: // 图形
			fileExtStr    = "GGC";
			break;
		}
		break;
	case 0x02: // 自喷井气水节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DNW";
			break;
		case 1: // 计算结果
			fileExtStr    = "RNW";
			break;
		case 2: // 图形
			fileExtStr    = "GNW";
			break;
		}
		break;

		// hss
	case 0x03: // 自喷气水井动态分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DSW";
			break;
		case 1: // 计算结果
			fileExtStr    = "RSW";
			break;
		case 2: // 图形
			fileExtStr    = "GSW";
			break;
		}
		break;

	case 0x04: // 气举排水采气节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DNF";
			break;
		case 1: // 计算结果
			fileExtStr    = "RNF";
			break;
		case 2: // 图形
			fileExtStr    = "GNF";
			break;
		}
		break;

		// hss
	case 0x05: // 气举排水采气动态分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DSF";
			break;
		case 1: // 计算结果
			fileExtStr    = "RSF";
			break;
		case 2: // 图形
			fileExtStr    = "GSF";
			break;
		}
		break;

	case 0x06: // 气举排水采气优化设计
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DDF";
			break;
		case 1: // 计算结果
			fileExtStr    = "RDF";
			break;
		case 2: // 图形
			fileExtStr    = "GDF";
			break;
		}
		break;
	case 0x07: // 抽油机排水采气优化设计
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DDR";
			break;
		case 1: // 计算结果
			fileExtStr    = "RDR";
			break;
		case 2: // 图形
			fileExtStr    = "GDR";
			break;
		}
		break;
	case 0x08: // 电潜泵排水采气节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DNB";
			break;
		case 1: // 计算结果
			fileExtStr    = "RNB";
			break;
		case 2: // 图形
			fileExtStr    = "GNB";
			break;
		}
		break;
	case 0x09: // 电潜泵排水采气优化设计
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DQB";
			break;
		case 1: // 计算结果
			fileExtStr    = "RQB";
			break;
		case 2: // 图形
			fileExtStr    = "GQB";
			break;
		}
		break; 
	case 0x0A: // 射流泵排水采气节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DNJ";
			break;
		case 1: // 计算结果
			fileExtStr    = "RNJ";
			break;
		case 2: // 图形
			fileExtStr    = "GNJ";
			break;
		}
		break;


		// hss
	case 0x0B: // 射流泵排水采气动态分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DSJ";
			break;
		case 1: // 计算结果
			fileExtStr    = "RSJ";
			break;
		case 2: // 图形
			fileExtStr    = "GSJ";
			break;
		}
		break;

	case 0x0C: // 射流泵排水采气设计
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DDJ";
			break;
		case 1: // 计算结果
			fileExtStr    = "RDJ";
			break;
		case 2: // 图形
			fileExtStr    = "GDJ";
			break;
		}
		break;
	case 0x0D: // 气井连续排液临界流量
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DGU";
			break;
		case 1: // 计算结果
			fileExtStr    = "RGU";
			break;
		case 2: // 图形
			fileExtStr    = "GGU";
			break;
		}
		break;
	case 0x0E: // 多相流垂管流压力梯度
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DMG";
			break;
		case 1: // 计算结果
			fileExtStr    = "RMG";
			break;
		case 2: // 图形
			fileExtStr    = "GMG";
			break;
		}
		break;
	case 0x0F: // 生产气井压力梯度
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DGG";
			break;
		case 1: // 计算结果
			fileExtStr    = "RGG";
			break;
		case 2: // 图形
			fileExtStr    = "GGG";
			break;
		}
		break;
	case 0x10: // 注气井压力梯度
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DIG";
			break;
		case 1: // 计算结果
			fileExtStr    = "RIG";
			break;
		case 2: // 图形
			fileExtStr    = "GIG";
			break;
		}
		break;
	case 0x11: // 经济评价
		fileExtStr    = "DPJ";
		break;
	case 0x12: // 生产气井节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DGN";
			break;
		case 1: // 计算结果
			fileExtStr    = "RGN";
			break;
		case 2: // 图形
			fileExtStr    = "GGN";
			break;
		}
		break;

	case 0x13: // 生产气井动态分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DGS";
			break;
		case 1: // 计算结果
			fileExtStr    = "RGS";
			break;
		case 2: // 图形
			fileExtStr    = "GGS";
			break;
		}
		break;

	case 0x14: // 凝析气井节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DNX";
			break;
		case 1: // 计算结果
			fileExtStr    = "RNX";
			break;
		case 2: // 图形
			fileExtStr    = "GNX";
			break;
		}
		break;
	case 0x15: // 柱塞气举举升分析
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DZS";
			break;
		case 1: // 计算结果
			fileExtStr    = "RZS";
			break;
		case 2: // 图形
			fileExtStr    = "GZS";
			break;
		}
		break;
	case 0x16: // 柱塞气举优化设计
		switch(type)
		{
		case 0: // 基础数据
			fileExtStr    = "DZY";
			break;
		case 1: // 计算结果
			fileExtStr    = "RZY";
			break;
		case 2: // 图形
			fileExtStr    = "GZY";
			break;
		}
		break;



	}

	*pStr = fileExtStr;
}


/*************************************************************************
 *
 * GetOpenFileName()
 *
 * 功  能: 得到待读数据文件名
 *
 * 参  数: int type:   处理类型
 *         BOOL bOpen: "打开" 还是 "保存"
 *         
 * 返回值: 无
 *
 *************************************************************************/
CString CCVenusApp::GetOpenFileName(int type, BOOL bOpen) 
{
	CString fileFilterStr, fileExtStr;

	switch(m_btProjectType)
	{
	case 0x01: // 工艺初选
		switch(type)
		{
		case 0: // 基础数据
			fileFilterStr = _T("Data files (*.DGC)|*.DGC|All files (*.*)|*.*||");
			fileExtStr    = _T("DGC");
			break;
		case 1: // 计算结果
			fileFilterStr = _T("Data files (*.RGC)|*.RGC|All files (*.*)|*.*||");
			fileExtStr    = _T("RGC");
			break;
		case 2: // 图形
			fileFilterStr = _T("Data files (*.GGC)|*.GGC|All files (*.*)|*.*||");
			fileExtStr    = _T("GGC");
			break;
		}
		break;
	case 0x02: // 自喷井气水节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileFilterStr = _T("Data files (*.DNW)|*.DNW|All files (*.*)|*.*||");
			fileExtStr    = _T("DNW");
			break;
		case 1: // 计算结果
			fileFilterStr = _T("Data files (*.RNW)|*.RNW|All files (*.*)|*.*||");
			fileExtStr    = _T("RNW");
			break;
		case 2: // 图形
			fileFilterStr = _T("Data files (*.GNW)|*.GNW|All files (*.*)|*.*||");
			fileExtStr    = _T("GNW");
			break;
		}
		break;

		// hss
	case 0x03: // 自喷气水井动态分析
		switch(type)
		{
		case 0: // 基础数据
			fileFilterStr = "Data files (*.DSW)|*.DSW|All files (*.*)|*.*||";
			fileExtStr    = "DSW";
			break;
		case 1: // 计算结果
			fileFilterStr = "Data files (*.RSW)|*.RSW|All files (*.*)|*.*||";
			fileExtStr    = "RSW";
			break;
		case 2: // 图形
			fileFilterStr = "Data files (*.GSW)|*.GSW|All files (*.*)|*.*||";
			fileExtStr    = "GSW";
			break;
		}
		break;


	case 0x04: // 气举排水采气节点分析
		switch(type)
		{
		case 0: // 基础数据
			fileFilterStr = _T("Data files (*.DNF)|*.DNF|All files (*.*)|*.*||");
			fileExtStr    = _T("DNF");
			break;
		case 1: // 计算结果
			fileFilterStr = _T("Data files (*.RNF)|*.RNF|All files (*.*)|*.*||");
			fileExtStr    = _T("RNF");
			break;
		case 2: // 图形
			fileFilterStr = _T("Data files (*.GNF)|*.GNF|All files (*.*)|*.*||");
			fileExtStr    = _T("GNF");
			break;
		}
		break;

		// hss
	case 0x05: // 气举排水采气动态分析
		switch(type)
		{
		case 0: // 基础数据
			fileFilterStr = "Data files (*.DSF)|*.DSF|All files (*.*)|*.*||";
			fileExtStr    = "DSF";
			break;
		case 1: // 计算结果
			fileFilterStr = "Data files (*.RSF)|*.RSF|All files (*.*)|*.*||";
			fileExtStr    = "RSF";
			break;
		case 2: // 图形
			fileFilterStr = "Data files (*.GSF)|*.GSF|All files (*.*)|*.*||";
			fileExtStr    = "GSF";
			break;
		}
		break;

	case 0x06: // 气举排水采气优化设计
		switch(type)
		{
		case 0: // 基础数据
			fileFilterStr = "Data files (*.DDF)|*.DDF|All files (*.*)|*.*||";
			fileExtStr    = "DDF";
			break;
		case 1: // 计算结果
			fileFilterStr = "Data files (*.RDF)|*.RDF|All files (*.*)|*.*||";
			fileExtStr    = "RDF";
			break;
		case 2: // 图形
			fileFilterStr = "Data files (*.GDF)|*.GDF|All files (*.*)|*.*||";
			fileExtStr    = "GDF";
			break;
		}
		break;
	case 0x07: // 抽油机排水采气优化设计
		switch(type)
		{
		case 0: // 基础数据
			fileFilterStr = "Data files (*.DDR)|*.DDR|All files (*.*)|*.*||";

⌨️ 快捷键说明

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