#pragma once #include "stdafx.h" #pragma pack(1) struct FileTransformationInfo { LPCTSTR fileNamesSelected; //要转换的文件列表。使用分号分割各个文件名。 int kindOfoutputDirectory; //0--源码所在目录 1--指定目录 LPCTSTR outputDirectorySpecified; int format; //目标文件格式 int bMark;//清除不使用的符号 int bClassification;//清除不使用的类别 FileTransformationInfo * Copy(); }; #pragma pack() class CSigmaDoc; class FileTransformer { public: enum RESULT { RESULT_OK = 0, RESULT_INNER_OBJECT_NULL, RESULT_OUTPUT_DIRECTORY_NULL, RESULT_OUTPUT_VALUE_ERROR, RESULT_OUTPUT_OUTPUT_PATH_ERROR, RESULT_OUTPUT_INPUT_FILES_EMPTY, RESULT_FORAMT_ERROR }; public: FileTransformer(CSigmaDoc * pDoc); bool Transform(); void SetFileTransInfo(FileTransformationInfo * fileTransInfo); RESULT Execute(); void StopTransform(bool b); int GetIndexOfFileByTransformation(); protected: bool GetFileNamesByTransfored(); void SplitStr(CString strSrc, CString strGap, CStringList &strResult); int ConversionToAscii(CString strPath, CString strFileName, int nOutMode); int ConversionToPCG(CString strPath, CString strFileName, int nOutMode); CString GetOutputFileName(CString strPath, CString strFileName, int nOutMode, CString strExt); void ClearNoUse(CXy* pxy); void * ReadFile(CString strFileName); protected: CSigmaDoc * m_pDoc; FileTransformationInfo * m_fileTransInfo; CStringList m_fileNamesSelected; bool m_stopTransforation; volatile int m_indexOfFileByTransformed; bool m_bClearNoUseMark; bool m_bClearNoUseLayer; };