Exemple #1
0
//导入描述文本,第一为主名称 各参数间用\分隔  参数中各项用空格分隔
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;
}
Exemple #3
0
// ----------------------------------------------------------------------------
// 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 );
}
Exemple #4
0
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;
}