void CUsefulStringList::OnClose() { // TODO: 在此添加消息处理程序代码和/或调用默认值 char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) ); setlocale( LC_CTYPE, "chs" );//设定 //保存常用字符串列表 CStdioFile fOftenUseList; if(fOftenUseList.Open(m_fPath,CFile::modeWrite)){ int lineNum; CString itemStr; lineNum=GetItemCount(); itemStr.Format(_T("%d"),lineNum); fOftenUseList.WriteString(itemStr);//写入行数 fOftenUseList.WriteString(_T("\n")); for(int i=0;i<lineNum;i++){ itemStr=GetItemText(i,0); fOftenUseList.WriteString(itemStr); fOftenUseList.WriteString(_T("\n")); } fOftenUseList.Close(); } //恢复区域设定 setlocale( LC_CTYPE, old_locale ); free( old_locale );//还原区域设定 }
void CCompilerDlg::OnBnClickedCompile() { // TODO: 在此添加控件通知处理程序代码 CStdioFile myFile; CFileException fileException; CString DiyText; //获得EDIT CEdit* pDiyText; pDiyText = (CEdit*) GetDlgItem(IDC_EDIT1); pDiyText-> GetWindowText(DiyText); CopyFile((CString)"DiyRaw.txt",(CString)"Diy.c",false); if (!myFile.Open(_T("Diy.c"), CFile::modeNoTruncate | CFile::typeText | CFile::modeReadWrite, &fileException )){ MessageBox(_T("代码生成失败,请重试"),_T("编译"),MB_OK); } myFile.Seek(0,CFile::end); myFile.WriteString(DiyText); myFile.Seek(0,CFile::end); myFile.WriteString((LPCTSTR)"}"); ShellExecute(NULL,_T("open"),_T("compile.bat"),NULL,NULL,SW_SHOW); myFile.Close(); DiyText.ReleaseBuffer(); }
void WritePorousDataFile( const CString& filepath, const AcGePoint3dArray& press_spts, const AcGePoint3dArray& press_epts, const AcGeDoubleArray& press_dirs ) { CStdioFile outfile; outfile.Open( filepath, CFile::modeCreate | CFile::modeWrite ); // 写入个数 CString str; str.Format( _T( "%d\n" ), press_dirs.length() ); outfile.WriteString( str ); // 写入方向以及中心点坐标 for( int i = 0; i < press_dirs.length(); i++ ) { str.Format( _T( "%.4f\n" ), press_dirs[i] ); AcGeVector3d v = press_epts[i] - press_spts[i]; AcGePoint3d pt = press_spts[i] + v * 0.5; str.AppendFormat( _T( "%.4f\t%.4f\t%.4f\n" ), pt.x, pt.y, pt.z ); outfile.WriteString( str ); } outfile.Close(); }
/** * \brief Write's the Value Descriptor in the CANoe format * \param[in] CStdioFile &fileOutput,char ,CList<CValueDescriptor,CValueDescriptor&> * \param[out] None * \return int * \authors Mahesh.B.S * \date 15.11.2002 */ void CValueDescriptor::writeValuDescToFile(CStdioFile &fileOutput,char m_ucType,CList<CValueDescriptor,CValueDescriptor&> &m_listValueDescriptor) { char acLine[defVDES_MAX_OUT_STR]; POSITION posValDesc = m_listValueDescriptor.GetHeadPosition(); while(posValDesc != NULL) { CValueDescriptor& rValDesc = m_listValueDescriptor.GetNext(posValDesc); switch(m_ucType) { case CSignal::SIG_TYPE_INT: case CSignal::SIG_TYPE_FLOAT: case CSignal::SIG_TYPE_DOUBLE: case CSignal::SIG_TYPE_INT64: sprintf(acLine,"%I64d \"%s\" ",rValDesc.m_value.i64Value,rValDesc.m_sDescriptor); break; case CSignal::SIG_TYPE_BOOL: case CSignal::SIG_TYPE_UINT: case CSignal::SIG_TYPE_UINT64: sprintf(acLine,"%I64u \"%s\" ",rValDesc.m_value.ui64Value,rValDesc.m_sDescriptor); break; default: break; } fileOutput.WriteString(acLine); } fileOutput.WriteString(";\n"); return; }
void CGameDoc::OnWriteScoreFile(CString pszFileName, int mode){ CStdioFile file; CFileException e; CFileStatus status; if(mode != -1) pszFileName.Format(pszFileName+("_%d"), mode); if(CFile::GetStatus(pszFileName, status)){//파일이 존재하는 경우 읽어오기만함 if(!(file.Open(pszFileName, CFile::modeReadWrite | CFile::shareDenyNone, &e))) { TRACE( _T("Can't open file %s, error = %u\n"), pszFileName, e.m_cause ); return; } }else{//파일이 존재하지 않는다면 생성한다 if(!(file.Open(pszFileName, CFile::modeCreate | CFile::modeReadWrite | CFile::shareDenyNone, &e))) { TRACE( _T("Can't open file %s, error = %u\n"), pszFileName, e.m_cause ); return; } } file.SeekToEnd(); // 라인 끝으로 이동한다. CString time; time.Format(_T("%d:%d:%d:%d"), m_nH, m_nM, m_nS, m_nTimeSet); file.WriteString(m_strName); file.WriteString(_T(",")); file.WriteString(time); file.WriteString(_T("\n")); file.Close(); }
bool FileMisc::AppendLineToFile(LPCTSTR szPathname, LPCTSTR szLine) { // make sure parent folder exists if (!CreateFolderFromFilePath(szPathname)) { return false; } CStdioFile file; if (file.Open(szPathname, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite)) { file.SeekToEnd(); file.WriteString(szLine); if (!_tcsstr(szLine, _T("\n"))) { file.WriteString(_T("\n")); } return true; } return false; }
/****************************************************************** * 如过文件中有空格行,则加到第一个空格行处,否则 * * 加到文件的末尾,为了方面后面的删除行操作,应该再添加路径末尾 * * 自动添加足够(超过需要加密的最长路径的长度)多的空格 * ******************************************************************/ BOOL CStaticAssistant::StoreEncryptInfo(CString path,CString fileName){ CStdioFile File; CString spacei=" "; CString temp=_T(""); int tempLen=0; try{ File.Open(fileName,CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate); File.SeekToBegin(); //遍历文件数据获取插入位置 while(File.ReadString(temp)==true){ tempLen=temp.GetLength()+2; //重要,考虑换行符占2字节 temp.TrimLeft(); temp.TrimRight(); //消除左右空格 if(temp==""){ File.Seek(-tempLen,CFile::current); File.WriteString(path); //写入要加入的路径名 return TRUE; } } File.WriteString(path+spacei+"\n"); ///写入末尾 return TRUE; }catch(...){ File.Close(); return FALSE; AfxMessageBox("保存重要文件失败,请重试!"); } return true; }
void WriteStringFile(CString& strFileName, CStringArray& sarray) { #if 0 CStdioFile file; CString strLine; char szCRL[3] = {0x0d, 0x0a,0}; int n; if( !file.Open(strFileName, CFile::modeCreate|CFile::modeReadWrite)) return ; for( n=0;n<sarray.GetSize();n++) { strLine = sarray.GetAt(n); file.WriteString(strLine); file.WriteString(szCRL); } file.Close(); #endif handleCommands(sarray); }
/** * Writes a debug string to a file or an Edit box * * For speed purposes this code is #define out. * * Uncomment the appropriate #define section when debug * is required */ void ManifestXML_Handler::Debug(CString debugMessage) { //#define DEBUG_TO_EDIT #ifdef DEBUG_TO_EDIT if (m_OutputEdit->m_hWnd != 0) { CString tempString; this->m_OutputEdit->GetWindowText(tempString); this->m_OutputEdit->SetWindowText(tempString + debugMessage + "\r\n"); } #endif //#define DEBUG_TO_FILE #ifdef DUBUG_TO_FILE CStdioFile* errorFile = new CStdioFile("C:\\debug.txt", CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite ); LPCTSTR errorMessage = (LPCTSTR)debugMessage; errorFile->Seek(0, CFile::end); errorFile->WriteString(errorMessage); errorFile->WriteString("\n"); errorFile->Close(); #endif }
bool CConfig::save() { CEquip* p; for (size_t i = 0; i < m_aEquip.size(); i++) { p = m_aEquip[i]; p->convert(); } CStdioFile f; CString s; bool ret = false; if (!f.Open(m_sConfigFn, CFile::modeCreate | CFile::modeReadWrite | CFile::shareDenyNone)) { s.Format("config file '%s' save error", m_sConfigFn); ::MessageBox(NULL, s, "File Save", MB_OK | MB_ICONERROR); return false; } try { s.Format("[config]\n" "\tport=%d\n" "\tlog-dir=%s\n" "\tserver-log-size=%d\n" "\tlog-size=%d\n" "\tlog-max=%d\n" "\tlog-temp-max=%d\n" "\tlog-timeout=%d\n" "\n" , m_nPort, m_sLogPath, m_nServerLogFileSize, m_nLogFileSize, m_nLogMax, m_nLogTempMax, m_nLogTimeout); f.WriteString(s); for (size_t i = 0; i < m_aEquip.size(); i++) { CEquip* p = m_aEquip[i]; s.Format("[equip]\n" "\tid=\"%s\"\n" "\tip=\"%s\"\n" "\tprefix=\"%s\"\n" "\tlogger-type=\"%s\"\n" "\tlog-method=\"%s\"\n" "\tinterval=%d\n" "\ttolerance=%.2f\n" "\tstart-condition=\"%s\"\n" "\tend-condition=\"%s\"\n" "\tstart-date=\"%s\"\n" "\tend-date=\"%s\"\n" "\n" , p->m_sID, p->m_sIP, p->m_sPrefix, p->m_sLoggerType, p->m_sLogMethod, p->m_nInterval, p->m_fTolerance, p->m_sStartCond, p->m_sEndCond, p->m_sStartTime, p->m_sEndTime); f.WriteString(s); } ret = true; } catch(...) { s.Format("config file '%s' write error", m_sConfigFn); ::MessageBox(NULL, s, "File Save", MB_OK | MB_ICONERROR); } f.Close(); return true; }
void WriteLog(CString strFileName, CString strText) { try { CTime tm = CTime::GetCurrentTime(); CString strTime = tm.Format(_T("%Y-%m-%d %H:%M:%S")); //BOOL bFull = FALSE; CStdioFile file; if( file.Open(strFileName, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite) != 0) { file.SeekToEnd(); file.WriteString(strTime); file.WriteString(strText); file.WriteString(_T("\n\n")); //if(file.GetLength() > 2000000) // bFull = TRUE; file.Close(); } /* if(!bFull) return; if( file.Open(strFileName, CFile::modeCreate|CFile::modeReadWrite) != 0) { file.SeekToEnd(); file.WriteString(strTime); file.WriteString(strText); file.WriteString(_T("\n")); file.Close(); } */ } catch(...) { } }
void PCB_Grid::OnSave() { CString settingsFile = getApp().getUserPath() + "default.grd"; CFileDialog FileDialog(FALSE, "GRD", settingsFile, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Manuf Grid File (*.GRD)|*.GRD|All Files (*.*)|*.*||", NULL); if (FileDialog.DoModal() != IDOK) return; CStdioFile file; if (!file.Open(FileDialog.GetPathName(), file.modeCreate | file.modeWrite | file.typeText)) { ErrorMessage(FileDialog.GetPathName(), "Unable to Open File!", MB_ICONEXCLAMATION | MB_OK); return; } UpdateData(); file.WriteString("! CAMCAD Manufacturing Grid Settings\n\n"); int decimals = GetDecimals(doc->getSettings().getPageUnits()); CString buf; buf.Format(".Units %s\n", GetUnitName(doc->getSettings().getPageUnits())); file.WriteString(buf); buf.Format(".Horizontal %d %d %.*lf\n", m_horz, m_hSteps, decimals, getHSizePageUnits()); file.WriteString(buf); buf.Format(".Vertical %d %d %.*lf\n", m_vert, m_vSteps, decimals, getVSizePageUnits()); file.WriteString(buf); buf.Format(".Thickness %.*lf\n", decimals,m_gridThickness); file.WriteString(buf); file.Close(); }
bool CLogFile::Close() { AdjustSize(); try { CString strLine; CStdioFile file; int retrycounter = 10; // try to open the file for about two seconds - some other TSVN process might be // writing to the file and we just wait a little for this to finish while (!file.Open(m_logfile.GetWinPath(), CFile::typeText | CFile::modeWrite | CFile::modeCreate) && retrycounter) { retrycounter--; Sleep(200); } if (retrycounter == 0) return false; for (std::list<CString>::const_iterator it = m_lines.begin(); it != m_lines.end(); ++it) { file.WriteString(*it); file.WriteString(_T("\n")); } file.Close(); } catch (CFileException* pE) { TRACE("CFileException loading autolist regex file\n"); pE->Delete(); return false; } return true; }
BOOL CPackage::setDone( LPCTSTR lpstrCode, LPCTSTR lpstrOutput) { CStdioFile myFile; CString csFile, csResult; csFile.Format( _T( "%s\\%s\\%s"), getDownloadFolder(), m_csID, OCS_DOWNLOAD_DONE); try { if (!myFile.Open( csFile, CFile::modeCreate|CFile::modeWrite|CFile::typeText|CFile::shareDenyWrite)) return FALSE; // First line is result code csResult.Format( _T( "%s\n"), lpstrCode); myFile.WriteString( csResult); if (lpstrOutput) // Following lines are command ouput myFile.WriteString( lpstrOutput); myFile.Close(); } catch( CException *pEx) { pEx->Delete(); myFile.Abort(); DeleteFile( csFile); return FALSE; } return TRUE; }
void WriteGoafTBGasDataFile( const CString& filepath, const AcGePoint3dArray& vertices, const AcDbIntArray& edges, const AcDbIntArray& faces, const AcDbIntArray& faces_info, const AcDbIntArray& goafs, const GasParam& gp ) { CStdioFile outfile; outfile.Open( filepath, CFile::modeCreate | CFile::modeWrite ); // 写入采空区个数 CString str; str.Format( _T( "%d\n" ), goafs.length() ); outfile.WriteString( str ); // 写入采空区总面积 double area = CaclTotalGoafArea( vertices, edges, faces, faces_info, goafs ); str.Format( _T( "%.4f\n" ), area ); outfile.WriteString( str ); // 写入(采空区+顶底板)瓦斯涌出量之和 double q = gp.f1 + gp.f4 + gp.f5; str.Format( _T( "%.4f\n" ), q ); outfile.WriteString( str ); outfile.Close(); }
//********************************************** // WriteHeader // Do not close file //********************************************** int CSceneGraph3d::WriteHeader(CStdioFile &file, char *name) { CFileException ex; // Try to open file (text mode) if(!file.Open(name,CFile::modeCreate | CFile::modeWrite | CFile::typeText,&ex)) { #ifdef _DEBUG afxDump << "File could not be opened " << ex.m_cause << "\n"; #endif AfxMessageBox("Unable to open file for writing"); return 0; } // ** Header ******************************* TRACE("\nSave VRML 2.0 File...\n"); TRACE(" name : %s\n",name); TRY { file.WriteString("#VRML V2.0 utf8\n\n"); file.WriteString("# Produced by 3d Toolbox 1.0 (Pierre Alliez, CNET / DIH / HDM)\n\n"); } CATCH(CFileException, e) { #ifdef _DEBUG afxDump << "Error during writing " << e->m_cause << "\n"; #endif AfxMessageBox("Error during writing file header"); file.Close(); return 0; }
void CBlokRtf::GetStdPWt(CString strBuf, CStdioFile &inF, CStdioFile &otF, CString strFnd, int& curPrv) { //Читает и пишет до вхождения подстроки int tPos,iCnt; CString strWrt,s; inF.ReadString(strBuf); if((tPos = strBuf.Find(strFnd))!=-1){ strWrt = strBuf.Left(tPos); //Считал для записи в цел. файл iCnt = strWrt.GetLength(); // s.Format("после читки curPrv = %i",curPrv); // AfxMessageBox("GetStdPWt "+strFnd+'\n'+"strWrt = "+strWrt +'\n'+ s+'\n'+"strBuf = "+strBuf); // AfxMessageBox(strWrt); otF.WriteString(strWrt);//сбрасываю что до bStr curPrv+=iCnt; //Перемещаю указатель на новою позицию от нач.файла !!! inF.Seek(curPrv,CFile::begin); curPrv = inF.GetPosition(); // s.Format(" после смещения Seek curPrv = %i назад на iCnt = %i",curPrv,iCnt); // AfxMessageBox(s); return;// curPos; } else{ // Не нашёл, можно читать дальше //AfxMessageBox("Не нашёл \n"+strBuf); otF.WriteString(strBuf); // Записал // inF.ReadString(strBuf); curPrv = inF.GetPosition(); GetStdPWt(strBuf, inF, otF, strFnd,curPrv); return; } }
/****************************************************************************** Function Name : nGenerateHtmlReport Input(s) : CStdioFile& omReportFile Output : INT Functionality : Generates the HTML report Member of : CResultGenerator Friend of : - Author(s) : Venkatanarayana Makam Date Created : 07/04/2011 Modifications : Code Tag : ******************************************************************************/ INT CResultGenerator::nGenerateHtmlReport(CStdioFile& omReportFile) { CString omStrHtml; omStrHtml.LoadString(IDS_HTMLSTART); omReportFile.WriteString(omStrHtml); nGenerateTextReport(omReportFile); omStrHtml.LoadString(IDS_HTMLEND); omReportFile.WriteString(omStrHtml); return 0; }
BOOL CConfigFileHandler::CreateFlashSNFile(CStdioFile& file, const CString& strFileName) { if (file.Open(strFileName.GetString(),CStdioFile::modeCreate|CStdioFile::modeReadWrite)) { file.WriteString(CString(c_strFlashHWVersion) + _T("1\n")); file.WriteString(CString(c_strFlashSNModel) + _T("1\n")); } else { return FALSE; } return TRUE; }
// 导出txt BOOL CListPage::Export(const CString& path) { CStdioFile file; if (!file.Open(path, CFile::modeCreate | CFile::modeWrite)) return FALSE; for (int i = 0; i < m_list.GetItemCount(); i++) { file.WriteString(m_list.GetItemText(i, 0)); file.WriteString(_T("\n")); } return TRUE; }
void VirtualProjectStatusListCtrl::SaveReport() { CStdioFile out; if(out.Open("fasttrack_report.txt",CFile::modeWrite|CFile::modeCreate|CFile::typeText)!=0) { out.WriteString("Project\tReal Supply\tDecoys\tEfficiency\tTrack Supply\n"); char temp[1024]; for(UINT i=0; i<v_data.size(); i++) { out.WriteString(v_data[i].m_project_name.c_str()); out.WriteString("\t"); ultoa(v_data[i].m_query_hit_count,temp,10); out.WriteString(temp); out.WriteString("\t"); ultoa(v_data[i].m_fake_query_hit_count,temp,10); out.WriteString(temp); out.WriteString("\t"); sprintf(temp,"%.2f",(float)100*((float)v_data[i].m_fake_query_hit_count/(float)(v_data[i].m_fake_query_hit_count+v_data[i].m_query_hit_count))); out.WriteString(temp); out.WriteString("\t"); if(v_data[i].v_track_query_hit_count.size() > 0 ) { sprintf(temp,"%u",v_data[i].v_track_query_hit_count[0]); for(UINT j=1;j<v_data[i].v_track_query_hit_count.size();j++) { sprintf(&temp[strlen(temp)]," %u",v_data[i].v_track_query_hit_count[j]); } out.WriteString(temp); } out.WriteString("\n"); } out.Close(); } }
bool CBiteThroldWnd::SaveResult() { CString path = m_nConfigFile; if (path.GetLength() <= 0) return false; CStdioFile file; if (!file.Open(path, CFile::modeCreate | CFile::modeReadWrite)) return false; Stringoper oper; file.WriteString(L"std="+oper.tocstring(oper.doubletostring(m_BiteThreshold.stdvalue) + '\n')); file.WriteString(L"vol=" + oper.tocstring(oper.doubletostring(m_BiteThreshold.voltvalue) + '\n')); file.Close(); return true; }
void CConfigFileHandler::SaveFlashSNParam(const CString& strFileName, int &nHWVersion, int & nModelValue) { CStdioFile file; if (file.Open(strFileName, CStdioFile::modeCreate|CStdioFile::modeNoTruncate | CStdioFile::modeReadWrite)) { CString strTemp; strTemp.Format(_T("%d"), nHWVersion); file.WriteString(CString(c_strFlashHWVersion) + strTemp + _T("\n")); strTemp.Format(_T("%d"), nModelValue); file.WriteString(CString(c_strFlashSNModel) + strTemp + _T("\n")); file.Close(); } }
BOOL PageJunOutControl::Save(CStdioFile& file) { CString strJunOrder = _T("Junction Data Order="); m_strJunOrder.TrimRight( _T("\n") ); strJunOrder += m_strJunOrder; strJunOrder += _T("\n"); file.WriteString(strJunOrder); CString strUnitOrder = _T("Junction Data Units="); m_strJunOrder.TrimRight( _T("\n") ); strJunOrder += m_strJunOrder; strJunOrder += _T("\n"); file.WriteString(strJunOrder); return TRUE; }
void CDiagRunView::write_model_array() { // TODO: Add your command handler code here CStdioFile file; CFileException e; file.Open("model_list.txt",CFile::modeReadWrite|CFile::modeCreate|CFile::shareDenyNone,&e); int count=ModelArray.GetSize(); if (count>0) { for (int i=0; i<count-1; i++) file.WriteString(ModelArray.GetAt(i)+"\n"); file.WriteString(ModelArray.GetAt(count-1)); } file.Close(); }
void CDXprocessDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 CStdioFile sFile; sFile.Open(mv_filePath,CFile::modeCreate|CFile::modeWrite); int nItemCount=m_dxprocessList.GetItemCount(); CString str; for(int i=0;i<nItemCount;++i) { str=m_dxprocessList.GetItemText(i,0); sFile.WriteString(str); sFile.WriteString(_T("\n")); } sFile.Close(); OnOK(); }
FLEXlm::~FLEXlm(void) { VOID *voidPtr = NULL; CString key; //check in any checked out licenses POSITION pos = m_jobMap.GetStartPosition(); while (pos) { m_jobMap.GetNextAssoc(pos, key, voidPtr); CheckIn(key); } m_sErrMsg.Empty(); // see if we need to save the license data if (!m_saLicsToCheck.IsEmpty() && m_bCreateLicList) { CString path = m_sCwd + m_sAvailLicFName; CStdioFile licFile; if (licFile.Open(path, CFile::modeCreate|CFile::modeWrite|CFile::typeText)) { for (int i=0; i<m_saLicsToCheck.GetCount(); i++) licFile.WriteString(m_saLicsToCheck[i] + "\n"); } licFile.Close(); } //Free the memory associated with this job lc_free_job(m_lmJob); }
/* bool CORDBList::WriteDBInfo() { CDBInfo *db; CString element; int count; if (m_List.IsEmpty()) return false; TRY { m_File.Open(m_ordblist, CFile::modeWrite); } CATCH_ALL(e) { m_File.Abort(); return false; } END_CATCH_ALL count = m_List.GetCount(); for (int i = 0; i < count; i++) { db = (CDBInfo *)m_List.GetAt(m_List.FindIndex(i)); element.Format("%s %s %s %s %s\n", db->m_dbname, db->m_dbpath, db->m_host, db->m_logpath, db->m_permanent ? "1" : "0"); m_File.WriteString(LPCSTR(element)); } m_File.Close(); return false; } */ bool CORDBList::WriteDBInfo() { CDBInfo *db; CStdioFile infofile; CString element; CFileException e; int count; if (m_List.IsEmpty()) return false; if (infofile.Open(m_ordbinfo, CFile::modeCreate | CFile::modeWrite, &e)) { count = (int) m_List.GetCount(); for (int i = 0; i < count; i++) { db = (CDBInfo *)m_List.GetAt(m_List.FindIndex(i)); if (!db->m_permanent) continue; element.Format("%s %s\n", db->m_dbname, db->m_permanent ? "1" : "0"); infofile.WriteString(LPCSTR(element)); } infofile.Close(); } else { return false; } return true; }
/****************************************************************** * 此删除主要使用与此路径名相同长度的空格串来覆盖 * ******************************************************************/ BOOL CStaticAssistant::DeleteUncryptInfo(CString path,CString fileName){ CStdioFile File; CString spacei=" "; CString temp=_T(""); int tempLen=0; try{ File.Open(fileName,CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate); File.SeekToBegin(); //遍历文件数据获取插入位置 while(File.ReadString(temp)==true){ tempLen=temp.GetLength()+2; //重要,考虑换行符占2字节 temp.TrimLeft(); temp.TrimRight(); //消除左右空格 if(temp==path){ int len=temp.GetLength(); spacei=spacei.Left(len); File.Seek(-tempLen,CFile::current); //回退文件内部指针 File.WriteString(spacei); //写入要加入的路径名 return TRUE; } } File.Close(); return FALSE;//关闭文件并返回 }catch(...){ File.Close(); return FALSE; } }
bool DBInterface::OpenSupplyConnection(CString ip, CString login, CString pass, CString db) { p_supply_conn = mysql_init(NULL); if (!mysql_real_connect(p_supply_conn, ip, login, pass, db, 0, NULL, 0)) { CStdioFile file; if( file.Open("SQL_Error_Log.txt", CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite, NULL) != 0) { file.SeekToEnd(); CString log; log = CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S"); log += " DBInterface::OpenSupplyConnection(...) "; log += "Failed to connect to database: Error: "; log += mysql_error(p_supply_conn); log += "\n\n"; file.WriteString(log); file.Close(); } CloseSupplyConnection(); return false; } return true; }