增加Data::Exists方法,判断数据是否存在
This commit is contained in:
		
							parent
							
								
									a67eefc0b4
								
							
						
					
					
						commit
						997aca7e6e
					
				|  | @ -106,7 +106,7 @@ void e2d::Renderer::EndDraw() | |||
| 
 | ||||
| 			ThrowIfFailed( | ||||
| 				GetWriteFactory()->CreateTextLayout( | ||||
| 				(const WCHAR *)fpsText, | ||||
| 				(const wchar_t *)fpsText, | ||||
| 					(UINT32)fpsText.GetLength(), | ||||
| 					fps_text_format_, | ||||
| 					0, | ||||
|  |  | |||
|  | @ -323,7 +323,7 @@ void e2d::Text::CreateFormat() | |||
| 
 | ||||
| 	ThrowIfFailed( | ||||
| 		Renderer::GetWriteFactory()->CreateTextFormat( | ||||
| 			(const WCHAR *)font_.family, | ||||
| 			(const wchar_t *)font_.family, | ||||
| 			nullptr, | ||||
| 			DWRITE_FONT_WEIGHT(font_.weight), | ||||
| 			font_.italic ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL, | ||||
|  | @ -387,7 +387,7 @@ void e2d::Text::CreateLayout() | |||
| 	{ | ||||
| 		ThrowIfFailed( | ||||
| 			writeFactory->CreateTextLayout( | ||||
| 				(const WCHAR *)text_, | ||||
| 				(const wchar_t *)text_, | ||||
| 				length, | ||||
| 				text_format_, | ||||
| 				style_.wrap_width, | ||||
|  | @ -406,7 +406,7 @@ void e2d::Text::CreateLayout() | |||
| 		// 为防止文本对齐问题,根据先创建 layout 以获取宽度
 | ||||
| 		ThrowIfFailed( | ||||
| 			writeFactory->CreateTextLayout( | ||||
| 				(const WCHAR *)text_, | ||||
| 				(const wchar_t *)text_, | ||||
| 				length, | ||||
| 				text_format_, | ||||
| 				0, | ||||
|  | @ -425,7 +425,7 @@ void e2d::Text::CreateLayout() | |||
| 		SafeRelease(text_layout_); | ||||
| 		ThrowIfFailed( | ||||
| 			writeFactory->CreateTextLayout( | ||||
| 				(const WCHAR *)text_, | ||||
| 				(const wchar_t *)text_, | ||||
| 				length, | ||||
| 				text_format_, | ||||
| 				size_.width, | ||||
|  |  | |||
|  | @ -8,80 +8,116 @@ e2d::Data::Data(const String & key, const String & field) | |||
| { | ||||
| } | ||||
| 
 | ||||
| void e2d::Data::SaveInt(int value) | ||||
| bool e2d::Data::Exists() const | ||||
| { | ||||
| 	::WritePrivateProfileString( | ||||
| 	wchar_t temp[256] = { 0 }; | ||||
| 	::GetPrivateProfileStringW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		L"", | ||||
| 		temp, | ||||
| 		255, | ||||
| 		(LPCWSTR)data_path_ | ||||
| 	); | ||||
| 	return temp[0] == L'\0'; | ||||
| } | ||||
| 
 | ||||
| bool e2d::Data::SaveInt(int value) | ||||
| { | ||||
| 	BOOL ret = ::WritePrivateProfileStringW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		(LPCWSTR)String::Parse(value), | ||||
| 		(LPCWSTR)data_path_ | ||||
| 	); | ||||
| 	return ret != 0; | ||||
| } | ||||
| 
 | ||||
| void e2d::Data::SaveDouble(float value) | ||||
| bool e2d::Data::SaveFloat(float value) | ||||
| { | ||||
| 	::WritePrivateProfileString( | ||||
| 	BOOL ret = ::WritePrivateProfileStringW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		(LPCWSTR)String::Parse(value), | ||||
| 		(LPCWSTR)data_path_ | ||||
| 	); | ||||
| 	return ret != 0; | ||||
| } | ||||
| 
 | ||||
| void e2d::Data::SaveBool(bool value) | ||||
| bool e2d::Data::SaveDouble(double value) | ||||
| { | ||||
| 	::WritePrivateProfileString( | ||||
| 	BOOL ret = ::WritePrivateProfileStringW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		(LPCWSTR)String::Parse(value), | ||||
| 		(LPCWSTR)data_path_ | ||||
| 	); | ||||
| 	return ret != 0; | ||||
| } | ||||
| 
 | ||||
| bool e2d::Data::SaveBool(bool value) | ||||
| { | ||||
| 	BOOL ret = ::WritePrivateProfileStringW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		(value ? L"1" : L"0"), | ||||
| 		(LPCWSTR)data_path_ | ||||
| 	); | ||||
| 	return ret != 0; | ||||
| } | ||||
| 
 | ||||
| void e2d::Data::SaveString(const String& value) | ||||
| bool e2d::Data::SaveString(const String& value) | ||||
| { | ||||
| 	::WritePrivateProfileString( | ||||
| 	BOOL ret = ::WritePrivateProfileStringW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		(LPCWSTR)value, | ||||
| 		(LPCWSTR)data_path_ | ||||
| 	); | ||||
| 	return ret != 0; | ||||
| } | ||||
| 
 | ||||
| int e2d::Data::GetInt(int default_value) | ||||
| int e2d::Data::GetInt() const | ||||
| { | ||||
| 	return ::GetPrivateProfileInt( | ||||
| 	return ::GetPrivateProfileIntW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		default_value, | ||||
| 		0, | ||||
| 		(LPCWSTR)data_path_ | ||||
| 	); | ||||
| } | ||||
| 
 | ||||
| float e2d::Data::GetDouble(float default_value) | ||||
| float e2d::Data::GetFloat() const | ||||
| { | ||||
| 	wchar_t temp[32] = { 0 }; | ||||
| 	::GetPrivateProfileString((LPCWSTR)field_, (LPCWSTR)key_, (LPCWSTR)String::Parse(default_value), temp, 31, (LPCWSTR)data_path_); | ||||
| 	::GetPrivateProfileStringW((LPCWSTR)field_, (LPCWSTR)key_, L"0.0", temp, 31, (LPCWSTR)data_path_); | ||||
| 	return std::stof(temp); | ||||
| } | ||||
| 
 | ||||
| bool e2d::Data::GetBool(bool default_value) | ||||
| double e2d::Data::GetDouble() const | ||||
| { | ||||
| 	int nValue = ::GetPrivateProfileInt( | ||||
| 	wchar_t temp[32] = { 0 }; | ||||
| 	::GetPrivateProfileStringW((LPCWSTR)field_, (LPCWSTR)key_, L"0.0", temp, 31, (LPCWSTR)data_path_); | ||||
| 	return std::stod(temp); | ||||
| } | ||||
| 
 | ||||
| bool e2d::Data::GetBool() const | ||||
| { | ||||
| 	int nValue = ::GetPrivateProfileIntW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		default_value ? 1 : 0, | ||||
| 		0, | ||||
| 		(LPCWSTR)data_path_); | ||||
| 	return nValue != 0; | ||||
| } | ||||
| 
 | ||||
| e2d::String e2d::Data::GetString(const String& default_value) | ||||
| e2d::String e2d::Data::GetString() | ||||
| { | ||||
| 	wchar_t temp[256] = { 0 }; | ||||
| 	::GetPrivateProfileString( | ||||
| 	::GetPrivateProfileStringW( | ||||
| 		(LPCWSTR)field_, | ||||
| 		(LPCWSTR)key_, | ||||
| 		(LPCWSTR)default_value, | ||||
| 		L"", | ||||
| 		temp, | ||||
| 		255, | ||||
| 		(LPCWSTR)data_path_ | ||||
|  |  | |||
|  | @ -56,7 +56,7 @@ const e2d::String& e2d::Path::GetLocalAppDataPath() | |||
| 	if (local_app_data_path.IsEmpty()) | ||||
| 	{ | ||||
| 		// 获取 AppData/Local 文件夹的路径
 | ||||
| 		WCHAR path[MAX_PATH] = { 0 }; | ||||
| 		wchar_t path[MAX_PATH] = { 0 }; | ||||
| 		::SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, path); | ||||
| 		local_app_data_path = path; | ||||
| 	} | ||||
|  |  | |||
|  | @ -370,49 +370,48 @@ public: | |||
| 		const String& field = L"Defalut"	/* 字段名称 */ | ||||
| 	); | ||||
| 
 | ||||
| 	// 该数据是否存在
 | ||||
| 	bool Exists() const; | ||||
| 
 | ||||
| 	// 保存 int 类型的值
 | ||||
| 	void SaveInt( | ||||
| 		int value							/* 数据 */ | ||||
| 	bool SaveInt( | ||||
| 		int value | ||||
| 	); | ||||
| 
 | ||||
| 	// 保存 float 类型的值
 | ||||
| 	void SaveDouble( | ||||
| 		float value						/* 数据 */ | ||||
| 	bool SaveFloat( | ||||
| 		float value | ||||
| 	); | ||||
| 
 | ||||
| 	// 保存 double 类型的值
 | ||||
| 	bool SaveDouble( | ||||
| 		double value | ||||
| 	); | ||||
| 
 | ||||
| 	// 保存 bool 类型的值
 | ||||
| 	void SaveBool( | ||||
| 		bool value							/* 数据 */ | ||||
| 	bool SaveBool( | ||||
| 		bool value | ||||
| 	); | ||||
| 
 | ||||
| 	// 保存 字符串 类型的值
 | ||||
| 	void SaveString( | ||||
| 		const String& value				/* 数据 */ | ||||
| 	// 保存 String 类型的值
 | ||||
| 	bool SaveString( | ||||
| 		const String& value | ||||
| 	); | ||||
| 
 | ||||
| 	// 获取 int 类型的值
 | ||||
| 	// (若不存在则返回 default_value 参数的值)
 | ||||
| 	int GetInt( | ||||
| 		int default_value					/* 默认值 */ | ||||
| 	); | ||||
| 	int GetInt() const; | ||||
| 
 | ||||
| 	// 获取 float 类型的值
 | ||||
| 	// (若不存在则返回 default_value 参数的值)
 | ||||
| 	float GetDouble( | ||||
| 		float default_value				/* 默认值 */ | ||||
| 	); | ||||
| 	float GetFloat() const; | ||||
| 
 | ||||
| 	// 获取 double 类型的值
 | ||||
| 	double GetDouble() const; | ||||
| 
 | ||||
| 	// 获取 bool 类型的值
 | ||||
| 	// (若不存在则返回 default_value 参数的值)
 | ||||
| 	bool GetBool( | ||||
| 		bool default_value					/* 默认值 */ | ||||
| 	); | ||||
| 	bool GetBool() const; | ||||
| 
 | ||||
| 	// 获取 字符串 类型的值
 | ||||
| 	// (若不存在则返回 default_value 参数的值)
 | ||||
| 	String GetString( | ||||
| 		const String& default_value			/* 默认值 */ | ||||
| 	); | ||||
| 	String GetString(); | ||||
| 
 | ||||
| protected: | ||||
| 	String key_; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue