#include "wsjcpp_diff_text.h" #include // --------------------------------------------------------------------- // WsjcppDiffTextRow WsjcppDiffTextRow::WsjcppDiffTextRow( int nNumberOfLine, const std::string &sKey, const std::string &sLine ) { m_nNumberOfLine = nNumberOfLine; m_sKey = sKey; m_sLine = sLine; } // --------------------------------------------------------------------- int WsjcppDiffTextRow::getNumberOfLine() { return m_nNumberOfLine; } // --------------------------------------------------------------------- std::string WsjcppDiffTextRow::getKey() { return m_sKey; } // --------------------------------------------------------------------- std::string WsjcppDiffTextRow::getLine() { return m_sLine; } // --------------------------------------------------------------------- // WsjcppDiffText void WsjcppDiffText::compare( const std::string &sText1, const std::string &sText2, std::vector &vOutput ) { std::vector list1; std::istringstream isTxt1(sText1); std::string sLine = ""; while (getline(isTxt1, sLine, '\n')) { list1.push_back(sLine); } std::vector list2; std::istringstream isTxt2(sText2); sLine = ""; while (getline(isTxt2, sLine, '\n')) { list2.push_back(sLine); } std::vector sWord; sWord.push_back("!add"); sWord.push_back("!del"); int len1 = list1.size(); int len2 = list2.size(); int i = 0, j = 0; //main comparisons while ((i &arr1, std::vector &arr2 ) { WsjcppDiffText::compare(txt1, txt2, arr1); WsjcppDiffText::compare(txt1, curtxt, arr2); for (unsigned int i=0;i i; --j) { if (arr1.at(j-1).getNumberOfLine() > arr1.at(j).getNumberOfLine()) { // TODO redesign std::swap(arr1.at(j-1), arr1.at(j)); } } } }