//导入描述文本,第一为主名称 各参数间用\分隔 参数中各项用空格分隔 bool CScript::ImportStr(CTString strDesc) { //****************替换掉\r\n************************** CTString strStreamNew ; int nLen1 = strDesc.GetLength(); BYTE *pB = (BYTE *)strStreamNew.GetBuffer(nLen1+sizeof(TCHAR)); BYTE *pDest = (BYTE *)(char*)(const char*)strDesc; int i; for (i=0;i<nLen1; i++) { if (*(pDest+i) == '\r' ||*(pDest+i) == '\n') { *pB = ' ';//替换为空格 pB++; } else { *pB = *(pDest+i); pB++; } } *pB = '\0';pB++;*pB = '\0'; strStreamNew.ReleaseBuffer(); //****************去掉\r 输出strStreamNew************************** m_strName = ""; int nLast = -1; for (i=0; i<strStreamNew.GetLength() ;i++) { if (strStreamNew.GetAt(i)=='/') { CTString str = strStreamNew.Mid(nLast+1,i-nLast-1); str.TrimLeft(); str.TrimRight(); if (nLast ==-1) m_strName = str; else m_strArray.Add(str); nLast = i; } } CTString str = strStreamNew.Mid(nLast+1,strStreamNew.GetLength() + 1 -nLast); str.TrimLeft(); str.TrimRight(); if (nLast ==-1) m_strName = str; else m_strArray.Add(str); return true; }
static void ParseKeyName(const CTString &strKey, HKEY &hKeyRoot, CTString &strKeyPath, CTString &strKeyName) { CTString strRemain = strKey; // separate key into the value part and path strKeyName = CTFileName(strRemain).FileName(); strRemain = CTFileName(strRemain).FileDir(); strRemain.TrimRight(strlen(strRemain)-1); // removes trailing backslash // try to find root key value if (strRemain.RemovePrefix("HKEY_CLASSES_ROOT\\")) { hKeyRoot = HKEY_CLASSES_ROOT; } else if (strRemain.RemovePrefix("HKEY_CURRENT_CONFIG\\")) { hKeyRoot = HKEY_CURRENT_CONFIG; } else if (strRemain.RemovePrefix("HKEY_CURRENT_USER\\")) { hKeyRoot = HKEY_CURRENT_USER; } else if (strRemain.RemovePrefix("HKEY_LOCAL_MACHINE\\")) { hKeyRoot = HKEY_LOCAL_MACHINE; } else if (strRemain.RemovePrefix("HKEY_USERS\\")) { hKeyRoot = HKEY_USERS; } else { ASSERT(FALSE); hKeyRoot = HKEY_CURRENT_USER; } strKeyPath = strRemain; }
// ---------------------------------------------------------------------------- // Name : AddListSubjectString() // Desc : // ---------------------------------------------------------------------------- void CUIHelp::AddListSubjectString( CTString &strSubject ) { CTString strTemp = strSubject; INDEX nLength = strTemp.Length(); if( nLength > HELP_LIST_SUBJECT_MAX_CHAR ) { // Check splitting position for 2 byte characters int nSplitPos = HELP_LIST_SUBJECT_MAX_CHAR - 4; BOOL b2ByteChar = FALSE; for( int iPos = 0; iPos < nSplitPos; iPos++ ) { if( strTemp[iPos] & 0x80 ) b2ByteChar = !b2ByteChar; else b2ByteChar = FALSE; } if( b2ByteChar ) nSplitPos--; // Trim right strTemp.TrimRight( nSplitPos ); strTemp += CTString( "..." ); } m_lbListContent.AddString( 0, strTemp, 0xFFAD60FF ); }
CTString CScript::GetName(CTString strLine) { int nPos = strLine.Find("="); if (nPos == -1) return ""; strLine.TrimLeft(); strLine = strLine.Mid(0,nPos); strLine.TrimLeft(); strLine.TrimRight(); return strLine; }