std::string MenuCommandSetCfg::_GetBitmapFolder() { std::string sFolder; CString sDir; CFileTools::GetExecutableDirectory(sDir); sDir.Append(_T("\\images\\")); sFolder= sDir; return sFolder; }
void DeleteSpaceFromString( CString &s ) { CStringArray arr; ExtractString(arr, s, _T(" ")); s.Format(_T("")); for (int i = 0; i < arr.GetSize(); i++) { s.Append(arr[i]); } }
CString CAddonUpdaterApp::GetTempPath(BOOL bCreate) { CString strPath; ::GetTempPath(MAX_PATH, strPath.GetBuffer(MAX_PATH)); strPath.ReleaseBuffer(); strPath.Append(_T("AddonUpdater\\")); if (bCreate) SHCreateDirectoryEx(NULL, strPath, NULL); return strPath; }
CString DLrtfhtml::toHtmlTag() { CString tstr; CString desthtml; int pstart=destcon.Find(_T("\\viewkind")); pstart=destcon.Find(_T(" "),pstart)+1; int pend; int proB,proE;//中间属性位置 CString temp,paragraph;//段落 CStringArray proArr; while((pend=destcon.Find(_T("\\par"),pstart))>=0)//获取每一个段落 { //pend=destcon.Find(_T("\\par"),pstart); if(pstart>=pend) break; tstr=destcon.Mid(pstart,pend-pstart); paragraph.Format(_T("<p>")); proB=proE=0; while((proB=getProPosition(tstr,proB))!=-1) { if(proB!=proE && proB>0) { temp=tstr.Mid(proE,proB-proE); //proE 上次结束的位置 if(!temp.IsEmpty()) { addHtmlTagToStr(temp,m_curPro); paragraph+=temp; } //desthtml.Append(tstr.Mid(proB,proE-proB)); } //添加属性到数组里 proE=tstr.Find(_T(" "),proB); if(proE==-1) proE=tstr.GetLength(); stringSplit(tstr.Mid(proB,proE-proB),proArr,_T("\\")); addProToArr(proArr,m_curPro); proB=proE+1; //加1 是为了去除属性后的一个空格 } if((tstr.GetLength()-1)>proE) { temp=tstr.Mid(proE+1); addHtmlTagToStr(temp,m_curPro); paragraph+=temp; } paragraph+=_T("</p>"); //paragraph.Format(_T("%s%s</p>"),paragraph,temp); desthtml.Append(paragraph); pstart=pend+4; } return desthtml; }
void CViewTree::OnLButtonDblClk(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default HTREEITEM temp = this->GetSelectedItem(); HTREEITEM parentitem = GetParentItem(temp); if (!ItemHasChildren(temp)){ CString str = GetItemText(temp); CString parentname = GetItemText(parentitem); char path[256] ;GetCurrentDirectory(256,path); CString pathstring = path; // 根据根目录设置路径 if (parentname.Left(4) == "SPIN"){ pathstring.Append("\\spin\\"); } if (parentname.Left(4) == "Elec"){ pathstring.Append("\\piez\\"); } //::MessageBoxA(NULL,_T(pathstring+str),_T("OK"),MB_OK); //POSITION pos = AfxGetApp()->m_pDocManager->GetFirstDocTemplatePosition(); //CDocTemplate * temp = AfxGetApp()->m_pDocManager->GetNextDocTemplate(pos); // 根据后缀名决定使用哪一个模版打开 if (str.Right(3)==_T("bmp")){ ((CPMPFileViewerApp *)AfxGetApp())->m_pBmpDocTemplate->OpenDocumentFile(pathstring+str); }else{ // 其他格式一律用文本编辑器打开 ((CPMPFileViewerApp *)AfxGetApp())->m_pTxtDocTemplate->OpenDocumentFile(pathstring+str); } //pMainFrame->CreateDocumentWindow("Name",pMainFrame); //POSITION pos; //pos = pCurrent->GetFirstViewPosition(); //CPMPFileViewerView * temp = (CPMPFileViewerView * )pCurrent->GetNextView(pos); // 希望通过发送消息告知DOC有一份文档需要打开,并告知文档的名称 //temp->SendMessage(WM_USERMESSAGE,0,0); } CTreeCtrl::OnLButtonDblClk(nFlags, point); }
CString CUInt128::ToHexString() const { CString pstr; CString sElement; for (int iIndex=0; iIndex<4; iIndex++) { sElement.Format(_T("%08X"), m_uData[iIndex]); pstr.Append(sElement); } return pstr; }
void CSaveDlg::OnTimer(UINT_PTR nIDEvent) { static UINT sizeUnits[] = { IDS_SIZE_UNIT_K, IDS_SIZE_UNIT_M, IDS_SIZE_UNIT_G }; static UINT speedUnits[] = { IDS_SPEED_UNIT_K, IDS_SPEED_UNIT_M, IDS_SPEED_UNIT_G }; if (nIDEvent == m_nIDTimerEvent && pGB && pMS) { CString str; REFERENCE_TIME pos = 0, dur = 0; pMS->GetCurrentPosition(&pos); pMS->GetDuration(&dur); REFERENCE_TIME time = 0; CComQIPtr<IMediaSeeking>(pGB)->GetCurrentPosition(&time); REFERENCE_TIME speed = time > 0 ? pos*10000000/time : 0; double dPos = pos / 1024.; unsigned int unitPos = AdaptUnit(dPos, _countof(sizeUnits)); double dDur = dur / 1024.; unsigned int unitDur = AdaptUnit(dDur, _countof(sizeUnits)); double dSpeed = speed / 1024.; unsigned int unitSpeed = AdaptUnit(dSpeed, _countof(speedUnits)); str.Format(_T("%.2lf %s / %.2lf %s , %.2lf %s"), dPos, ResStr(sizeUnits[unitPos]), dDur, ResStr(sizeUnits[unitDur]), dSpeed, ResStr(speedUnits[unitSpeed])); if (speed > 0) { str.Append(_T(",")); REFERENCE_TIME sec = (dur-pos) / speed; DVD_HMSF_TIMECODE tcDur = { (BYTE)(sec / 3600), (BYTE)(sec / 60 % 60), (BYTE)(sec % 60), 0 }; if (tcDur.bHours > 0) { str.AppendFormat(_T(" %0.2dh"), tcDur.bHours); } if (tcDur.bMinutes > 0) { str.AppendFormat(_T(" %0.2dm"), tcDur.bMinutes); } if (tcDur.bSeconds > 0) { str.AppendFormat(_T(" %0.2ds"), tcDur.bSeconds); } } m_report.SetWindowText(str); m_progress.SetPos(dur > 0 ? (int)(100*pos/dur) : 0); } CCmdUIDialog::OnTimer(nIDEvent); }
CString IOrderModule::DebugCrashInfo (void) // DebugCrashInfo // // Output debug info { int i; CString sResult; sResult.Append(CONSTLIT("IOrderModule\r\n")); for (i = 0; i < m_iObjCount; i++) sResult.Append(strPatternSubst(CONSTLIT("m_Objs[%d]: %s\r\n"), i, CSpaceObject::DebugDescribe(m_Objs[i]))); sResult.Append(OnDebugCrashInfo()); return sResult; }
int hgzDeleteSepFromString(CString &s, const CString ®exSep) { CStringArray arr; int x = hgzExtractSubStrings1(arr, s, regexSep); s.Format(_T("")); for (int i = 0; i < arr.GetSize(); i++) { s.Append(arr[i]); } return x; }
static BOOL CopyCUIXandMNR( LPCTSTR cuixPath, LPCTSTR mnrPath ) { CString cadPath = GetCADPathByWinAPI( _T( "RoamableRootFolder" ), CURRENT_USER ); cadPath.Append( _T( "Support" ) ); //CString CADcuixPath = cadPath + _T("\\acad.CUIX"); CString CADcuixPath = cadPath + _T( "\\acad.CUIX" ); CString CADmnrPath = cadPath + _T( "\\acad.mnr" ); //获取当前程序(.exe)所在的路径 CString CurrentPath = GetWorkDir(); CString JLcuixPath = CurrentPath; //JLcuixPath.Append("\\Datas\\JL\\acad.CUIX"); JLcuixPath.Append( cuixPath ); CString JLmnrPath = CurrentPath + mnrPath; if( !CopyFile( JLcuixPath, CADcuixPath, false ) ) return FALSE; //if(!CopyFile(JLmnrPath,CADmnrPath,false)) return FALSE; return TRUE; }
HRESULT CMainDlg::GetKSoftDirectory(CString &strDir) { HRESULT hr = SUCCEEDED(CAppPath::Instance().GetLeidianDataPath(strDir)); if ( hr ) { strDir = strDir.Left(strDir.ReverseFind(_T('\\')) + 1); strDir.Append(_T("ksoft")); } return hr; }
// overloaded method: double (with extra parameter for amount of decimal places) CString createStringNumberWithDigitGrouping(const double &_number, const unsigned int &_numberOfDecimalPlaces) { CString stringNumber; // create format string (for decimal places) CString stringFormat; stringFormat.Format("%d", _numberOfDecimalPlaces); stringFormat.Insert(0, "%."); stringFormat.Append("f"); // convert number to string stringNumber.Format(stringFormat, _number); // add digit grouping and return result return createStringNumberWithDigitGrouping(stringNumber); }
CString CSZCommandLineEx::FormatCommandUsage(int nParamNameWidth, int nValueNameWidth) { CString strCommandUsage; int nMaxParamNameLen = 0; int nMaxValueNameLen = 0; GetMaxLengthOfParamNameAndValue(&nMaxParamNameLen, &nMaxValueNameLen); if (-1 == nParamNameWidth) nParamNameWidth = nMaxParamNameLen; if (-1 == nValueNameWidth) nValueNameWidth = nMaxValueNameLen; nParamNameWidth = max(1, nParamNameWidth); nParamNameWidth = min(20, nParamNameWidth); nValueNameWidth = max(1, nValueNameWidth); nValueNameWidth = min(20, nValueNameWidth); POSITION pos = m_usageMap.GetHeadPosition(); while (pos) { CParamUsageMap::CPair* pPair = m_usageMap.GetNext(pos); if (!pPair) continue; CString strParamPresentation = FormatParamUsage( pPair->m_key, pPair->m_value, nParamNameWidth, nValueNameWidth); strCommandUsage.Append(strParamPresentation); strCommandUsage.Append(_T("\n")); } return strCommandUsage; }
void CPPgGeneral::OnLangChange() { //MODIFIED by VC-fengwen on 2007/10/29 <begin> : 到verycd下语言包 //#define MIRRORS_URL _T("http://langmirror%i.emule-project.org/lang/%i%i%i%i/") #define MIRRORS_URL _T("http://www.emule.org.cn/language/%06d/%s") //MODIFIED by VC-fengwen on 2007/10/29 <end> : 到verycd下语言包 WORD byNewLang = (WORD)m_language.GetItemData(m_language.GetCurSel()); if (thePrefs.GetLanguageID() != byNewLang){ if (!thePrefs.IsLanguageSupported(byNewLang, false)){ if (AfxMessageBox(GetResString(IDS_ASKDOWNLOADLANGCAP) + _T("\r\n\r\n") + GetResString(IDS_ASKDOWNLOADLANG), MB_ICONQUESTION | MB_YESNO) == IDYES){ // download file // create url, use random mirror for load balancing //MODIFIED by VC-fengwen on 2007/10/29 <begin> : 到verycd下语言包 //UINT nRand = (rand()/(RAND_MAX/3))+1; //CString strUrl; //strUrl.Format(MIRRORS_URL, nRand, CGlobalVariable::m_nVersionMjr, CGlobalVariable::m_nVersionMin, CGlobalVariable::m_nVersionUpd, CGlobalVariable::m_nVersionBld); //strUrl += thePrefs.GetLangDLLNameByID(byNewLang); CString strUrl; strUrl.Format(MIRRORS_URL, CGlobalVariable::m_nVCVersionBld, thePrefs.GetLangDLLNameByID(byNewLang)); //MODIFIED by VC-fengwen on 2007/10/29 <end> : 到verycd下语言包 // safeto CString strFilename = thePrefs.GetMuleDirectory(EMULE_ADDLANGDIR, true); strFilename.Append(thePrefs.GetLangDLLNameByID(byNewLang)); // start CHttpDownloadDlg dlgDownload; dlgDownload.m_strTitle = GetResString(IDS_DOWNLOAD_LANGFILE); dlgDownload.m_sURLToDownload = strUrl; dlgDownload.m_sFileToDownloadInto = strFilename; if (dlgDownload.DoModal() == IDOK && thePrefs.IsLanguageSupported(byNewLang, true)) { // everything ok, new language downloaded and working OnSettingsChange(); return; } CString strErr; strErr.Format(GetResString(IDS_ERR_FAILEDDOWNLOADLANG), strUrl); LogError(LOG_STATUSBAR, _T("%s"), strErr); AfxMessageBox(strErr, MB_ICONERROR | MB_OK); } // undo change selection for(int i = 0; i < m_language.GetCount(); i++) if(m_language.GetItemData(i) == thePrefs.GetLanguageID()) m_language.SetCurSel(i); } else OnSettingsChange(); } }
CString CDConsoleDlg::GetGroupUserMemberTypeString(const CString& strMemberType) { int iMeberType = StrToInt(strMemberType); CString strResult; switch (iMeberType) // user 类型 { case 0: { strResult.Append(_T("[Group in dynamic reorganization member]")); } break; case 1: { strResult.Append(_T("[Normal user member]")); } break; } return strResult; }
void Char2CString(char * inputbuffer,CString &content){ //预转换,得到所需空间的大小 int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), NULL, 0); //分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间 wchar_t* wszString = new wchar_t[wcsLen + 1]; //转换 ::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), wszString, wcsLen); //最后加上'\0' wszString[wcsLen] = '\0'; //附加到CString对象上 content.Append(wszString); }
// 从中心取得普通用户级别ID并组合成SQL字串 CString CCardopenConsumeView::GetCommonClassIdAsString(void) { CString strClassId; strClassId.Append(_T("(")); for (INT i = 0; i < CNetBarConfig::GetInstance()->m_UserClassArray.GetCount(); i++) { if (!CNetBarConfig::GetInstance()->m_UserClassArray.GetAt(i).GetIsMember()) { strClassId.AppendFormat(_T("%d, "), CNetBarConfig::GetInstance()->m_UserClassArray.GetAt(i).GetClassID()); } } strClassId = strClassId.Left(strClassId.ReverseFind(',')); strClassId.Append(_T(")")); strClassId.Trim(); return strClassId; }
CString CDConsoleDlg::GetGroupUserMemberTypeString(const CString& strMemberType) { int iMeberType = StrToInt(strMemberType); CString strResult; switch (iMeberType) // 用户类型 { case 0: { strResult.Append(_T("[动态重组中的组成员]")); } break; case 1: { strResult.Append(_T("[普通用户成员]")); } break; } return strResult; }
static void WriteMineName(CString& mineName) { if(mineName.IsEmpty()) { mineName = ISNULL; } if(-1 == mineName.Find(_T("矿"))) { mineName.Append(_T("矿")); } MyWord->FindWord(_T("{{Mine_Name}}"),mineName); }
/** * @brief 북마크 일괄적용을 위해 북마크 리스트의 북마크 들을 스트링으로 변환한다. * @param [in] spineIndex : spine 파일의 index * @param [out] param : 엔진 extension 에 일괄 적용을 요청하기 위한 데이터 */ void IN3Setting::GetInitBookmarkParam(int spineIndex, CString ¶m) { param = _T(""); // if(spineIndex < 0){ return; } std::pair<std::multimap<int, IN3Bookmark *>::iterator, std::multimap<int, IN3Bookmark *>::iterator> iter_pair; iter_pair = bookmarks.equal_range(spineIndex); std::multimap<int, IN3Bookmark *>::iterator iter; for( iter = iter_pair.first; iter != iter_pair.second; iter ++) { if(iter != iter_pair.first) { param.Append(_T(", ")); } IN3Bookmark *pBookmark = iter->second; param.Append(pBookmark->GetJSONString()); } }
CString CCommon::GetSystemFolder() { CString sysPath; UINT size = GetSystemDirectory(NULL,0); CHAR * path = new CHAR[size]; if(GetSystemDirectory(path,size) != 0) { sysPath.Append(path); } delete[] path; return sysPath; }
CString CShieldClass::GetReference (CItemCtx &Ctx, int iVariant, DWORD dwFlags) // GetReference // // Returns a string that describes the basic attributes // of this shield // // Example: // // 20 hp (average regen); 100MW { int i; CString sReference; CString sRegeneration; const CItemEnhancement &Mods = Ctx.GetMods(); // Compute the strength string int iMin, iMax; CalcMinMaxHP(Ctx, m_iMaxCharges, 0, 0, &iMin, &iMax); // Compute the regeneration if (m_iRegenHP > 0) { int iRate = (int)((10.0 * g_TicksPerSecond * m_iRegenHP / m_iRegenRate) + 0.5); if (iRate == 0) sRegeneration = CONSTLIT("<0.1 hp/sec"); else if ((iRate % 10) == 0) sRegeneration = strPatternSubst(CONSTLIT("%d hp/sec"), iRate / 10); else sRegeneration = strPatternSubst(CONSTLIT("%d.%d hp/sec"), iRate / 10, iRate % 10); } else sRegeneration = CONSTLIT("none"); sReference = strPatternSubst("%s — regen @ %s", GetReferencePower(Ctx), sRegeneration); // Reflection for (i = 0; i < damageCount; i++) { if (m_Reflective.InSet((DamageTypes)i) || (Mods.IsReflective() && Mods.GetDamageType() == i)) sReference.Append(strPatternSubst(CONSTLIT(" — %s-reflecting"), GetDamageShortName((DamageTypes)i))); } return sReference; }
void CdllInjectDoc::EjectSelected(CListCtrl* lv, LPTSTR szDllName) { POSITION pos = lv->GetFirstSelectedItemPosition(); int index = 0; TCHAR pid[21]; TCHAR cPid[21] = {0}; DWORD dwPid; while((index = lv->GetNextSelectedItem(pos)) != -1) { memcpy_s(pid, 21, cPid, 21); lv->GetItemText(index, 1, pid, 20); dwPid = _ttoi(pid); TCHAR exeFile[MAX_PATH]; lv->GetItemText(index, 0, exeFile, MAX_PATH); TCHAR line[260]; _stprintf_s(line, 260, _T("Ejecting %s(%s)... "), exeFile, pid); writeLog(CString(line)); if (EjectDll(dwPid, szDllName) == TRUE) { CString temp; temp.Append(exeFile); temp += _T("|"); temp.Append(pid); temp += _T("|"); pidInfo.Replace(temp, _T("")); writeLog(CString("SUCCEED.\r\n")); } else writeLog(CString("FAILED.\r\n")); } }
CString CGenethonDoc::handlePyError() { CString retVal = CString(); PyObject* excType, *excValue, *excTraceback; PyErr_Fetch(&excType, &excValue, &excTraceback); PyErr_NormalizeException(&excType, &excValue, &excTraceback); CString callBacks = CString(); CString work = CString(); PyTracebackObject* ptraceback = (PyTracebackObject*)excTraceback; if (ptraceback != NULL) { work.Format("File: %s\nLine no: %d\n", PyUnicode_AsUTF8(PyObject_Str(((PyTracebackObject*)ptraceback)->tb_frame->f_code->co_filename)), ((PyTracebackObject*)ptraceback)->tb_lineno); callBacks.Append(work.GetString()); // Advance to the last frame (python puts the most-recent call at the end) while (ptraceback->tb_next != NULL) { ptraceback = ptraceback->tb_next; work.Format("File: %s\nLine no: %d\n", PyUnicode_AsUTF8(PyObject_Str(((PyTracebackObject*)ptraceback)->tb_frame->f_code->co_filename)), ((PyTracebackObject*)ptraceback)->tb_lineno); callBacks.Append(work.GetString()); } // At this point I have access to the line number via traceback->tb_lineno, // but where do I get the file name from? int line = ptraceback->tb_lineno; } retVal.Format("Error type: %s\n%s\nError: %s", PyUnicode_AsUTF8(PyObject_Str(excType)), callBacks.GetString(), PyUnicode_AsUTF8(PyObject_Str(excValue)) ); // Now you have two options, restoring the exception or disposing it. PyErr_Restore(excType, excValue, excTraceback); //----> Py_XDECREF(excType); Py_XDECREF(excValue); Py_XDECREF(excTraceback); return retVal; }
CString RtfOle::RenderToOOX(RenderParameter oRenderParameter) { if( false == IsValid() ) return _T(""); CString sResult; if( RENDER_TO_OOX_PARAM_OLE_ONLY == oRenderParameter.nType ) { sResult.Append( RenderToOOXOnlyOle(oRenderParameter) ); } else { sResult.Append( _T("<w:r>") ); sResult.AppendFormat( _T("<w:object w:dxaOrig=\"%d\" w:dyaOrig=\"%d\">"), m_nWidth, m_nHeight ); RenderParameter oNewRenderParameter = oRenderParameter; oNewRenderParameter.nType = RENDER_TO_OOX_PARAM_SHAPE_WSHAPE2; m_oResultPic->m_bIsOle = true; sResult.Append( m_oResultPic->RenderToOOX(oNewRenderParameter) ); oNewRenderParameter.nValue = m_oResultPic->m_nID; sResult.Append( RenderToOOXOnlyOle(oNewRenderParameter) ); sResult.Append( _T("</w:object>") ); sResult.Append( _T("</w:r>") ); } return sResult; }
CString RtfOle::RenderToOOXOnlyOle(RenderParameter oRenderParameter) { CString sResult; OOXWriter* poOOXWriter = static_cast<OOXWriter*>(oRenderParameter.poWriter); OOXRelsWriter* poRelsWriter = static_cast<OOXRelsWriter*>(oRenderParameter.poRels); RtfDocument* poDocument = static_cast<RtfDocument*>(oRenderParameter.poDocument); sResult.Append( _T("<o:OLEObject") ); switch ( m_eOleType ) { case ot_link: sResult.Append( _T(" Type=\"Link\"") );break; default: sResult.Append( _T(" Type=\"Embed\"") );break; } sResult.AppendFormat( _T(" ProgID=\"%ls\""), m_sOleClass.GetBuffer() ); sResult.AppendFormat( _T(" ShapeID=\"_x0000_s%d\""), poDocument->GetShapeId( oRenderParameter.nValue ) ); sResult.Append( _T(" DrawAspect=\"Content\"") ); sResult.AppendFormat( _T(" ObjectID=\"%ls\""), poDocument->m_oIdGenerator.Generate_OleId().GetBuffer() ); CString sExtension = _T("bin"); CString sMime = _T("application/vnd.openxmlformats-officedocument.oleObject"); CString sFilenameRels; sFilenameRels.AppendFormat( _T("oleObject%d.%ls"), poDocument->m_oIdGenerator.Generate_OleIndex(), sExtension.GetBuffer()); CString sFilenameFull = poOOXWriter->m_sTargetFolder + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("embeddings"); FileSystem::Directory::CreateDirectory( sFilenameFull ); sFilenameFull += FILE_SEPARATOR_STR + sFilenameRels; sFilenameRels = _T("embeddings/") + sFilenameRels; Utils::CopyDirOrFile( m_sOleFilename, sFilenameFull ); poOOXWriter->m_oContentTypes.AddExtension( sMime, sExtension); CString srId = poRelsWriter->AddRelationship( _T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"), sFilenameRels); sResult.AppendFormat( _T(" r:id=\"%ls\""), srId.GetBuffer() ); sResult.Append( _T("/>") ); return sResult; }
void CLogArchiver::DoArchive(bool bDispErr) { uint32 nOldArchId = m_nArchId; ++m_nArchId; if(m_nArchId > m_nArchNo) m_nArchId = 1; char sLogDir[FOCP_MAX_PATH]; CFormatString oCmd; CString::StringCopy(sLogDir, m_oLogDir.GetStr()); CDiskFileSystem::GetInstance()->GetOsPathName(sLogDir); #ifdef WINDOWS oCmd.Print("tar -czf %s\\%s.%03d.log.tar.gz %s\\%s.*.log 1>1.txt 2>2.txt", m_oArchDir.GetStr(), m_oLogName.GetStr(), m_nArchId, sLogDir, m_oLogName.GetStr()); #else oCmd.Print("tar -czf %s/%s.%03d.log.tar.gz %s/%s.*.log 1>1.txt 2>2.txt", m_oArchDir.GetStr(), m_oLogName.GetStr(), m_nArchId, sLogDir, m_oLogName.GetStr()); #endif int32 nRet = System(oCmd.GetStr()); char sErrFile[FOCP_MAX_PATH]; CString::StringCopy(sErrFile, "disk://"); CDiskFileSystem::GetInstance()->GetFullPath("2.txt", sErrFile+7); CFile oFile(sErrFile, "r"); bool bHaveError = false; CString oError; while(true) { int32 nLen = oFile.Read(sErrFile, FOCP_MAX_PATH); if(nLen <= 0) break; bHaveError = true; oError.Append(sErrFile, nLen); } oFile.Redirect(NULL); if(bHaveError) { m_nArchId = nOldArchId; if(bDispErr) FocpError(("%s", oError.GetStr())); } else if(nRet) { m_nArchId = nOldArchId; if(bDispErr) FocpError(("system('%s') failure", oCmd.GetStr())); } else { oCmd.Clear(); oCmd.Print("rm -rf %s\\%s.*.log 1>1.txt 2>2.txt", sLogDir, m_oLogName.GetStr()); System(oCmd.GetStr()); } System("rm -rf 1.txt"); System("rm -rf 2.txt"); }
void CActionCtrl::OnEditCopy() { // TODO: Add your command handler code here UINT cnt = this->GetSelectedCount(); if(cnt > 0) { CString src; const int ncol = this->GetHeaderCtrl()->GetItemCount(); POSITION pos = GetFirstSelectedItemPosition(); while (pos) { int idx = GetNextSelectedItem(pos); for(int i = 0; i < ncol; ++i) { src.Append(GetItemText(idx, i)); src.Append(TEXT("\t")); } src.Append(TEXT("\r\n")); } if (OpenClipboard()) { EmptyClipboard(); HGLOBAL hClip =GlobalAlloc(GMEM_MOVEABLE,(src.GetLength() + 1) * sizeof(TCHAR)); TCHAR *buf = (TCHAR*)GlobalLock(hClip); lstrcpy(buf, src.GetString()); GlobalUnlock(hClip); SetClipboardData(CF_UNICODETEXT,hClip); CloseClipboard(); } } }
BOOL CFileOpt::ConvetPath(CString& strSourcPath) { if (strSourcPath == _T("")) { return TRUE; } try { if(strSourcPath.GetAt(0) == '%') { int iEnd = strSourcPath.Find('%',1); CString strEnvPath = strSourcPath.Mid(1,iEnd-1); CString strPath = strSourcPath.Mid(iEnd+2); wchar_t* pEnv; pEnv = _wgetenv(strEnvPath.GetBuffer()); if (pEnv!=NULL) { strEnvPath = pEnv; int iLen = strEnvPath.GetLength(); if (strEnvPath.GetAt(iLen-1)!='\\') { strEnvPath.Append(_T("\\")); } strEnvPath.Append(strPath.GetBuffer()); strSourcPath = strEnvPath; } } } catch(...) { return FALSE; } return TRUE; }
// roll a log file from , "blah.log" to "blah_YYMMDD.log" BOOL RollLogFile( char *origFilename ) { CString newfilename = origFilename; CTime nowtime = CTime::GetCurrentTime(); CString txt; txt.Format( "-%2d%2d%d", nowtime.GetYear(),nowtime.GetMonth(),nowtime.GetDay() ); newfilename.Replace( ".log", txt.GetBuffer(0) ); newfilename.Append( ".log" ); return MoveFile( origFilename, newfilename.GetBuffer(0) ); }