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


C++ CLine::SetType方法代码示例

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


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

示例1: AppendTable

void AppendTable(CLineVector & lineVector, const CTable & table, CLine::TYPE type)
{
	for (size_t i = 1; i < table.size() - 1; ++i)
	{
		CLine line = table[i];
		line.SetType(type);
		lineVector.push_back(line);
	}
}
开发者ID:GordonSmith,项目名称:eclide,代码行数:9,代码来源:TextCompare.cpp

示例2: AppendBlankLines

void AppendBlankLines(CLineVector & lineVector, const CTable & otherTable, CLine::TYPE type)
{
	for (size_t i = 1; i < otherTable.size() - 1; ++i)
	{
		CLine line;
		if (!IsDummyLine(line))
		{
			line.SetType(otherTable[i].GetType() == CLine::TYPE_MOVED ? CLine::TYPE_MATCH : type);
			lineVector.push_back(line);
		}
	}
}
开发者ID:GordonSmith,项目名称:eclide,代码行数:12,代码来源:TextCompare.cpp

示例3: GetResults

void CAnchors::GetResults(CLineVector & baseResult, CLineVector & compResult)
{
	for(size_t i = 1; i < m_baseTable.size() - 1; ++i)
	{
		CLine line = m_baseTable[i];
		if (AnchorsBaseContains(i))
			line.SetType(CLine::TYPE_MATCH);
		else
			line.SetType(CLine::TYPE_SIMILAR);
		baseResult.push_back(line);
	}

	for(size_t i = 1; i < m_compTable.size() - 1; ++i)
	{
		CLine line = m_compTable[i];
		if (AnchorsCompContains(i))
			line.SetType(CLine::TYPE_MATCH);
		else
			line.SetType(CLine::TYPE_SIMILAR);
		compResult.push_back(line);
	}
}
开发者ID:GordonSmith,项目名称:eclide,代码行数:22,代码来源:TextCompare.cpp

示例4: GetPaddedResults

void CAnchors::GetPaddedResults(CLineVector & baseResult, CLineVector & compResult) const
{
	unsigned int matchCount = GetMatchCount();
	unsigned int gapCount = GetGapCount();
	unsigned int matchPos = 0;
	unsigned int gapPos = 0;
	while(matchPos < matchCount)
	{
		{
			CTable baseTable, compTable;
			GetMatch(matchPos, baseTable, compTable);
			for (size_t i = 1; i < baseTable.size() - 1; ++i)
			{
				CLine baseLine = baseTable[i];
				CLine compLine = compTable[i];
				CLine::TYPE type = baseLine.Equals(compLine, 0) ? CLine::TYPE_MATCH : CLine::TYPE_SIMILAR;
				if (type == CLine::TYPE_SIMILAR)
				{
					CTable baseLineTable(baseLine.GetText(), true);
					CTable compLineTable(compLine.GetText(), true);
					CAnchors lineAnchors(baseLineTable, compLineTable, 0);
					CLineVector baseLineVector, compLineVector;
					lineAnchors.GetResults(baseLineVector, compLineVector);
					SetCharTypes(baseLine, baseLineVector);
					SetCharTypes(compLine, compLineVector);
				}
				baseLine.SetType(type);
				compLine.SetType(type);
				baseResult.push_back(baseLine);
				compResult.push_back(compLine);
			}
			ATLASSERT(baseResult.size() == compResult.size());
			++matchPos;
		}
		if (gapPos < gapCount)
		{
			CTable baseTable, compTable;
			GetGap(gapPos, baseTable, compTable);
			if (baseTable.size() <= 2)	//Added lines
			{
				ATLASSERT(compTable.size() > 2);
				AppendBlankLines(baseResult, compTable, CLine::TYPE_ADDED);
				AppendTable(compResult, compTable, CLine::TYPE_ADDED);
			}
			else if (compTable.size() <= 2)  //Deleted lines
			{
				ATLASSERT(baseTable.size() > 2);
				AppendTable(baseResult, baseTable, CLine::TYPE_DELETED);
				AppendBlankLines(compResult, baseTable, CLine::TYPE_DELETED);
			}
			else if (m_accuracy > 35)	//  Don't recurse too much.
			{
				AppendTable(baseResult, baseTable, CLine::TYPE_DELETED);
				AppendBlankLines(compResult, baseTable, CLine::TYPE_DELETED);
				AppendBlankLines(baseResult, compTable, CLine::TYPE_ADDED);
				AppendTable(compResult, compTable, CLine::TYPE_ADDED);
			}
			else
			{
				CAnchors gapAnchors(baseTable, compTable, m_accuracy + 5);
				gapAnchors.GetPaddedResults(baseResult, compResult);
			}
			ATLASSERT(baseResult.size() == compResult.size());
			++gapPos;
		}
	}
}
开发者ID:GordonSmith,项目名称:eclide,代码行数:67,代码来源:TextCompare.cpp


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