#pragma once
#include "Workspace.h"
#include "SortArray.h"

/*!
	テキスト整形クラス
*/
class CTextFormatter
{
public:
	CTextFormatter(void);
	virtual ~CTextFormatter(void);

	//!	置き換え追加
	void AddKey(CString key, CString swapTo);

	//!	置き換え追加
	void AddKeyFromWorkspace(CWorkspaceAccess workspace, CString keyHeader = "");

	//!	無効文字追加
	void AddEscape(CString token, CString escape);

	//!	クリア
	void Clear();

	//!	置き換え実行
	CString GetFormattedString(CString format, CString keyMarker = "%", CString noMatchKey = "-");

protected:
	///////////////////////////////////////////////////////////////////////////////////////////////////
	//	検索処理
	///////////////////////////////////////////////////////////////////////////////////////////////////
	//!	マーカ切り出し
	int GetNextMarker(CString &format, int &nextIndex, CString &marker, CString &leftText, CString &key);

	///////////////////////////////////////////////////////////////////////////////////////////////////
	//	メンバ変数
	///////////////////////////////////////////////////////////////////////////////////////////////////
	//!	キー
	CKeyDataArray	m_keys;

	//!	無効文字
	CKeyDataArray	m_escape;
};
