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

📄 common.cpp

📁 自动化编译工具代码
💻 CPP
字号:
#include "StdAfx.h"
#include "Common.h"

#include "txttool.h"

#pragma warning( disable : 4996 )

CString CCommon::GetFilePath(LPCTSTR lpszFilePath)
{
	TCHAR szDir[_MAX_DIR];
	TCHAR szDrive[_MAX_DRIVE];
	_tsplitpath(lpszFilePath, szDrive, szDir, NULL, NULL);
	return  CString(szDrive) + CString(szDir);
}

CString CCommon::GetFileName(LPCTSTR lpszFilePath)
{
	TCHAR szExt[_MAX_EXT];
	TCHAR szName[_MAX_FNAME];
	_tsplitpath(lpszFilePath, NULL, NULL, szName, szExt);
	return CString(szName);
}

CString CCommon::GetFileExtName(LPCTSTR lpszFilePath)
{
	TCHAR szExt[_MAX_EXT];
	TCHAR szName[_MAX_FNAME];
	_tsplitpath(lpszFilePath, NULL, NULL, szName, szExt);
	return CString(szExt);
}

BOOL CCommon::CreateEmptyFile(LPCTSTR lpszFilePath)
{
	return	CFile().Open(lpszFilePath, CFile::modeCreate);
}

void CCommon::WinExecAndWait32( LPCTSTR lpszAppPath,  LPCTSTR lpParameters, LPCTSTR lpszDirectory )
{
	SHELLEXECUTEINFO ShExecInfo = {0};
	ShExecInfo.cbSize	= sizeof(SHELLEXECUTEINFO);
	ShExecInfo.fMask	= SEE_MASK_NOCLOSEPROCESS;
	ShExecInfo.hwnd		= NULL;
	ShExecInfo.lpVerb	= NULL;
	ShExecInfo.lpFile	= lpszAppPath;		
	ShExecInfo.lpParameters = lpParameters;	
	ShExecInfo.lpDirectory	= lpszDirectory;
	ShExecInfo.nShow	= SW_HIDE;
	ShExecInfo.hInstApp = NULL;	
	ShellExecuteEx(&ShExecInfo);
	WaitForSingleObject(ShExecInfo.hProcess,INFINITE);	
}

CString CCommon::GetDirFrontDirPath(const CString &strDirPath)
{
	if (strDirPath.GetLength() > 3)
	{
		return GetFilePath(strDirPath.Left(strDirPath.GetLength()-1)+".exe");
	}

	return "";
}

BOOL CCommon::DeleteDirectory(const char *DirName)
{
   CFileFind tempFind;
   char tempFileFind[200];
   sprintf(tempFileFind,"%s\\*.*",DirName);
   BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
   while(IsFinded)
   {
      IsFinded=(BOOL)tempFind.FindNextFile();
      if(!tempFind.IsDots())
      {
         char foundFileName[200];
         strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));
         if(tempFind.IsDirectory())
         {
            char tempDir[200];
            sprintf(tempDir,"%s\\%s",DirName,foundFileName);
            DeleteDirectory(tempDir);
         }
         else
         {
            char tempFileName[200];
            sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
			::SetFileAttributes(tempFileName, FILE_ATTRIBUTE_ARCHIVE);
            DeleteFile(tempFileName);
         }
      }
   }
   tempFind.Close();
   if(!::RemoveDirectory(DirName))
   {
      return FALSE;
   }
   return TRUE;
}

int CCommon::RandNum( const int nLength )
{
	srand(time(0)); 

	int nResult = 0;

	for(int i = 0; i< nLength; i++) 
	{
		nResult = nResult + rand()*(i+1);
	}
	
	return nResult;
}

BOOL CCommon::BuildProjectSuccessed( const CString &strBuildLogFile )
{
	CTxtTool txt;
	if (txt.Open(strBuildLogFile))
	{
		return txt.FindIsContainString("0 error(s)");
	}

	return FALSE;
}

int CCommon::FindFiles(const CString strDir,
					   CStringArray &arsFiles, 
					   const CString strFileExtName)
{
	CFileFind f;
	BOOL bFind = f.FindFile(strDir + "\\*." + strFileExtName);
	while (bFind)
	{
		bFind = f.FindNextFile();
		if (f.IsDots())			continue;
		if (f.IsDirectory())	FindFiles(f.GetFilePath(), arsFiles);	//取得所有子目录
		else					arsFiles.Add(f.GetFilePath());
	}
	
	return arsFiles.GetSize();
}

int CCommon::FindStringPos(const CStringArray &Array,  const CString& str)   
{   
    int  nReturn  =  -1;   
 
    for (int i = 0; i < Array.GetSize(); i++)   
    {   
		if ((GetFileName(Array.GetAt(i))+GetFileExtName(Array.GetAt(i))).CompareNoCase(str) == 0)   
		{   
			nReturn = i;   
			break;
		}   
    }   

    return   nReturn;   
}

⌨️ 快捷键说明

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