当前位置: 首页>>代码示例>>C++>>正文


C++ FileParser::ResetCurrentPos方法代码示例

本文整理汇总了C++中FileParser::ResetCurrentPos方法的典型用法代码示例。如果您正苦于以下问题:C++ FileParser::ResetCurrentPos方法的具体用法?C++ FileParser::ResetCurrentPos怎么用?C++ FileParser::ResetCurrentPos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FileParser的用法示例。


在下文中一共展示了FileParser::ResetCurrentPos方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: strlen

//================================================================================================================
vector<string> CGlobal::CacheNames(string filepath)
{
	char* in_path = new char[strlen(filepath.c_str()) + 1];
	strcpy_s(in_path, strlen(filepath.c_str()) + 1, filepath.c_str());
	vector<string> names = CGlobal::GetFilenames(in_path, "");

	FileParser parser;

	vector<string> p_valuesToRemove;

	//if there is a name without a .* then remove it
	for (int i = 0; i < names.size(); i++)
	{
		parser.ResetCurrentPos();

		string name = names[i];

		char* in_path = new char[strlen(name.c_str()) + 1];
		strcpy_s(in_path, strlen(name.c_str()) + 1, name.c_str());

		bool containsPeriod = false;

		int val;
		while ((val = parser.FindToken(in_path, true)) != -1)
		{
			if (val == PERIOD)
			{
				containsPeriod = true;
				break;
			}
		}

		if (!containsPeriod)
		{
			p_valuesToRemove.push_back(name);
		}
	}

	if (p_valuesToRemove.size() > 0)
	{
		vector<string> temp_names;
		vector<string>::iterator it = names.begin();
		for (; it != names.end(); it++)
		{
			for (int i = 0; i < p_valuesToRemove.size(); i++)
			{
				bool good = true;
				for (int t = 0; t < p_valuesToRemove.size(); t++)
				{
					if ((*it) == p_valuesToRemove[t])
					{
						good = false;
					}
				}

				if (good)
				{
					bool exists = false;
					for (int j = 0; j < temp_names.size(); j++)
					{
						if ((*it) == temp_names[j])
						{
							exists = true;
							break;
						}
					}
					if (!exists)
					{
						temp_names.push_back((*it));
						break;
					}
				}
				else break;
			}
		}

		if (names.size() > 0) names.clear();

		for (int i = 0; i < temp_names.size(); i++)
		{
			names.push_back(temp_names[i]);
		}
	}

	return names;
}
开发者ID:henriyl,项目名称:ZShadeSandboxOld,代码行数:87,代码来源:CGlobal.cpp


注:本文中的FileParser::ResetCurrentPos方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。