#pragma once


/*!
	設定読み込みアイテム
*/
class CSettingTextParserItem
{
public:
	//!	コンストラクタ
	CSettingTextParserItem() {};

	//	コピーコンストラクタ
	CSettingTextParserItem(const CSettingTextParserItem &other)
	{
		m_keyText = other.m_keyText;
		m_dataArray.Copy(other.m_dataArray);
	};

	//	コピー
	void operator=(const CSettingTextParserItem &other)
	{
		m_keyText = other.m_keyText;
		m_dataArray.Copy(other.m_dataArray);
	};

public:
	////////////////////////////////////////////////////////////////////
	//	メンバ変数
	////////////////////////////////////////////////////////////////////
	//!	キーとなるテキスト
	CString			m_keyText;

	//!	設定項目
	CStringArray	m_dataArray;
};

//!	配列型
typedef CArray<CSettingTextParserItem> CSettingTextParserItemArray;


/*!
	設定テキストパーサー
*/
class CSettingTextParser
{
public:
	//!	パース実効
	static void ParseText(CString text, CSettingTextParserItemArray &parsed);

protected:
	///////////////////////////////////////////////////////////////////
	//	ツール
	///////////////////////////////////////////////////////////////////
	//!	1行解析
	static void ParseLine(CString line, CSettingTextParserItemArray &parsed, int lineCount);
};


