tdlimportexportmgr.cpp

来自「管理项目进度工具的原代码」· C++ 代码 · 共 140 行

CPP
140
字号
// TDImportExportMgr.cpp: implementation of the CTDLImportExportMgr class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "todolist.h"
#include "TDLImportExportMgr.h"
#include "tasklisthtmlexporter.h"
#include "tasklisttxtexporter.h"
#include "tasklistcsvexporter.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CTDLImportExportMgr::CTDLImportExportMgr()
{

}

CTDLImportExportMgr::~CTDLImportExportMgr()
{

}

void CTDLImportExportMgr::Initialize()
{
	// add html and text exporters first
	if (!m_bInitialized)
	{
		m_aExporters.InsertAt(EXP2HTML, new CTaskListHtmlExporter);
		m_aExporters.InsertAt(EXP2TXT, new CTaskListTxtExporter);
		m_aExporters.InsertAt(EXP2CSV, new CTaskListCsvExporter);
	}

	CImportExportMgr::Initialize();
}

BOOL CTDLImportExportMgr::ExportTaskListToHtml(const ITaskList* pSrcTasks, LPCTSTR szDestFile) const
{
	return ExportTaskList(pSrcTasks, szDestFile, EXP2HTML);
}

CString CTDLImportExportMgr::ExportTaskListToHtml(const ITaskList* pSrcTasks) const
{
	char szTempFile[MAX_PATH], szTempPath[MAX_PATH];
		
	if (!::GetTempPath(MAX_PATH, szTempPath) || 
		!::GetTempFileName(szTempPath, "tdl", 0, szTempFile))
		return "";
		
	CString sFile;

	if (ExportTaskListToHtml(pSrcTasks, szTempFile))
	{
		CStdioFile file;

		if (file.Open(szTempFile, CFile::modeRead))
		{
			CString sLine;

			while (file.ReadString(sLine))
				sFile += sLine;
		}
	}

	::DeleteFile(szTempFile);
	return sFile;
}

BOOL CTDLImportExportMgr::ExportTaskListToText(const ITaskList* pSrcTasks, LPCTSTR szDestFile) const
{
	return ExportTaskList(pSrcTasks, szDestFile, EXP2TXT);
}

CString CTDLImportExportMgr::ExportTaskListToText(const ITaskList* pSrcTasks) const
{
	char szTempFile[MAX_PATH], szTempPath[MAX_PATH];
		
	if (!::GetTempPath(MAX_PATH, szTempPath) || 
		!::GetTempFileName(szTempPath, "tdl", 0, szTempFile))
		return "";
		
	CString sFile;

	if (ExportTaskListToText(pSrcTasks, szTempFile))
	{
		CStdioFile file;

		if (file.Open(szTempFile, CFile::modeRead))
		{
			CString sLine;

			while (file.ReadString(sLine))
				sFile += sLine + "\n";
		}
	}

	::DeleteFile(szTempFile);
	return sFile;
}

BOOL CTDLImportExportMgr::ExportTaskListToCsv(const ITaskList* pSrcTasks, LPCTSTR szDestFile) const
{
	return ExportTaskList(pSrcTasks, szDestFile, EXP2CSV);
}

CString CTDLImportExportMgr::ExportTaskListToCsv(const ITaskList* pSrcTasks) const
{
	char szTempFile[MAX_PATH], szTempPath[MAX_PATH];
		
	if (!::GetTempPath(MAX_PATH, szTempPath) || 
		!::GetTempFileName(szTempPath, "tdl", 0, szTempFile))
		return "";
		
	CString sFile;

	if (ExportTaskListToCsv(pSrcTasks, szTempFile))
	{
		CStdioFile file;

		if (file.Open(szTempFile, CFile::modeRead))
		{
			CString sLine;

			while (file.ReadString(sLine))
				sFile += sLine + "\n";
		}
	}

	::DeleteFile(szTempFile);
	return sFile;
}

⌨️ 快捷键说明

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