You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.5 KiB
C++

#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;
};