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