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

1 month ago
#pragma once
#include "stdafx.h"
#pragma pack(1)
struct FileTransformationInfo
{
LPCTSTR fileNamesSelected; //Ҫת<D2AA><D7AA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>б<EFBFBD><D0B1><EFBFBD>ʹ<EFBFBD>÷ֺŷָ<C5B7><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
int kindOfoutputDirectory; //0--Դ<><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼ 1--ָ<><D6B8>Ŀ¼
LPCTSTR outputDirectorySpecified;
int format; //Ŀ<><C4BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʽ
int bMark;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õķ<C3B5><C4B7><EFBFBD>
int bClassification;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
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;
};