📄 myedpprj.cpp
字号:
#include "stdafx.h"
#include "editcmd.h"
#include "resource.h"
#include "myedpprj.h"
#include "msdspprj.h"
#include "filesup.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma warning ( disable : 4711 )
/////////////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNAMIC (CMyEdpProject, CProject)
CMyEdpProject::CMyEdpProject ()
{
}
bool CMyEdpProject::Open (LPCTSTR pszPath)
{
if (CMsDspProject::OpenDsp (this, NULL, pszPath, _T ("")))
{
sPath = pszPath;
return true;
}
return false;
}
bool CMyEdpProject::Save (LPCTSTR pszPath)
{
if (SaveEdp (this, pszPath))
{
sPath = pszPath;
g_pProject->SetModified (FALSE);
return true;
}
return false;
}
#define BEGIN_PROJECT _T ("# Begin Project")
#define BEGIN_GROUP _T ("# Begin Group")
#define BEGIN_FILE _T ("# Begin Source File")
#define END_PROJECT _T ("# End Project")
#define END_GROUP _T ("# End Group")
#define END_FILE _T ("# End Source File")
#define SOURCE _T ("SOURCE=")
#define EOLN _T ("\n")
bool CMyEdpProject::SaveEdpItem (CProject *pProject, CProjectItem *pParent, FILE *fp)
{
if (pParent->dwType & PI_GROUP)
if (pParent->dwType & PI_ROOT)
_fputts ((BEGIN_GROUP _T (" \"")) + pParent->sMidPath + pParent->sPath + (_T ("\"") EOLN), fp);
else
_fputts ((BEGIN_GROUP _T (" \"")) + pParent->sPath + (_T ("\"") EOLN), fp);
else
{
_fputts (BEGIN_FILE EOLN, fp);
CString sEntry = pParent->sMidPath + pParent->sPath,
sPath = GetPath (pProject->sPath, TRUE);
int nLength = sPath.GetLength ();
if (!_tcsnicmp (sPath, sEntry, nLength))
sEntry = sEntry.Mid (nLength);
_fputts (SOURCE + sEntry + EOLN, fp);
}
POSITION pos = pParent->lstItems.GetHeadPosition ();
CProjectItem *pItem;
while (pos)
{
pItem = pParent->lstItems.GetNext (pos);
SaveEdpItem (pProject, pItem, fp);
}
if (pParent->dwType & PI_GROUP)
_fputts (END_GROUP EOLN, fp);
else
_fputts (END_FILE EOLN, fp);
return true;
}
bool CMyEdpProject::SaveEdp (CProject *pProject, LPCTSTR pszPath)
{
CWaitCursor wait;
FILE *fp = _tfopen (pszPath, _T ("wt"));
if (!fp)
return false;
_fputts (BEGIN_PROJECT EOLN, fp);
POSITION pos = pProject->lstItems.GetHeadPosition ();
CProjectItem *pItem;
while (pos)
{
pItem = pProject->lstItems.GetNext (pos);
if (pItem->dwType & PI_ROOT)
SaveEdpItem (pProject, pItem, fp);
}
_fputts (END_PROJECT EOLN, fp);
fclose (fp);
return true;
}
/////////////////////////////////////////////////////////////////////////////
#pragma warning ( default : 4711 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -