Exemple #1
0
int pruebaEstrategiaCompresionArbol(){
	/*************************Creacion Arbol***************************/
	Referencia ref=0;
	AtributoFijo<char*> nombre("miStringID",15);
	char unNombre[15]="abaco";
	nombre.set(unNombre);
	Registro reg(1,&nombre);
	Clave clave(&reg,1,"miStringID");
	BSharpTree* arbol = new BSharpTree(&clave);
	ComparadorClave* comparador = new ComparadorRegistroVariable();
	string nombreArbol = "Arbol";
	string nombreArbol2 = "Arbol2";
	string nombreComprimido = "ArbolComprimido";
	unsigned int tamanioBloque = 128;
	arbol->crear(nombreArbol,tamanioBloque,&clave,comparador);
	for(int i=0;i<70;i++){
		strncpy(unNombre,Terminos::obtenerTermino(i).data(),15);
		nombre.set(unNombre);
		Registro reg1(1,&nombre);
		Clave clave1(&reg1,1,"miStringID");
		//std::cout<<clave1.getAtributo("miStringID")<<std::endl;
		arbol->insertar(ref,&clave1);
	}
	for(int i=0;i<30;i++){
		strncpy(unNombre,Terminos::obtenerTermino(i).data(),15);
		nombre.set(unNombre);
		Registro reg1(1,&nombre);
		Clave clave1(&reg1,1,"miStringID");
		//std::cout<<clave1.getAtributo("miStringID")<<std::endl;
		arbol->eliminar(&clave1);
	}
	arbol->imprimir();
	//arbol->cerrar();
	string nombreArchivo = arbol->getNombreArchivo();
	/*delete comparador;
	delete arbol;*/
	/************************COMPRIMIENDO*****************************/
	EstrategiaCompresion compresion;
	compresion.compresionArbol(arbol,nombreComprimido,128);
	arbol->cerrar();
	delete arbol;
	//compresion.compresionIndice(nombreArchivo,nombreComprimido,128);
	/************************DESCOMPRIMIENDO**************************/
	BSharpTree* arbol2 = new BSharpTree(&clave);
	ComparadorClave* comparador2 = new ComparadorRegistroVariable();
	//compresion.descompresionInsdice(nombreComprimido,nombreArchivo);
	//arbol2->abrir(nombreArbol2,nombreArbol,comparador2);
	//arbol2->abrir(nombreArbol2,nombreArbol,comparador2);
	compresion.descompresionArbol(arbol2,nombreComprimido);
	arbol2->imprimir();
	delete arbol2;
	delete comparador2;
	return 0;
}
Exemple #2
0
HRESULT ASOC(PCTSTR ptzCmd)
{
	if (*ptzCmd == '!')
	{
		return  SHDeleteKey(HKEY_CLASSES_ROOT, (ptzCmd[1] ? &ptzCmd[1] : STR_AppName));
	}

	if (*ptzCmd)
	{
		CReg reg1(ptzCmd, HKEY_CLASSES_ROOT);
		reg1.SetStr(NULL, STR_AppName);
	}

	CReg reg2(STR_AppName, HKEY_CLASSES_ROOT);
	reg2.SetStr(NULL, STR_AppName);

	TCHAR tzPath[MAX_PATH];
	PTSTR p = tzPath;
	*p++ = '"';
	p += GetModuleFileName(NULL, p, MAX_PATH);
	CReg reg3(STR_AppName TEXT("\\DefaultIcon"), HKEY_CLASSES_ROOT);
	UStrCopy(p, TEXT(",1"));
	reg3.SetStr(NULL, tzPath + 1);

	UStrCopy(p, TEXT("\" %1"));
	CReg reg4(STR_AppName TEXT("\\Shell\\Open\\Command"), HKEY_CLASSES_ROOT);
	reg4.SetStr(NULL, tzPath);
	return S_OK;
}
Exemple #3
0
QString DecorateGCpp::decorate(QString str)
{
    QString result;
    QRegExp reg1("(.+):(\\d+):(.+) (\\[.+\\]) (\\[[0-9]+\\])");
    QRegExp reg2("(\\D+): (\\d+)");

    str.replace("<", "&lt;");
    str.replace(">", "&gt;");
    // str.replace("&", "&amp;");  // it may not be needed...

    if (reg1.indexIn(str) >= 0) {
        result += "<B>" + reg1.cap(1) + "</B>";
        result += ":<FONT COLOR='RED'>" + reg1.cap(2) + "</FONT>:";
        result += "<STRONG>" + reg1.cap(3) + "</STRONG> ";
        result += "<FONT COLOR='BLUE'>" + reg1.cap(4) + "</FONT> ";
        result += "<FONT COLOR='GREEN'>" + reg1.cap(5) + "</FONT>";
        result += "<BR>";
    } else if (reg2.indexIn(str) >= 0) {
        result += reg2.cap(1);
        result += ": <FONT COLOR='RED'>" + reg2.cap(2) + "</FONT>";
        nerror_ = reg2.cap(2).toInt();
    } else {
        result += str;
        result += "<BR>";
    }

    return result;
}
Exemple #4
0
void Board::loadFromString(std::string board_string)
{
    //cout << board_string << endl;
    
    
    std::string pieceRegex = "[a-z]+[0-9]*";
    std::string player_aux = currentPlayer;
    
    regex reg1(pieceRegex, regex_constants::icase);
    
    sregex_iterator it(board_string.begin(), board_string.end(), reg1);
    sregex_iterator it_end;
    
    int pieceNumber = 0;
    
    
    while(it != it_end) {
        std::smatch match = *it;
        std::string match_str = match.str();
        
       // cout << match_str << endl;
        
        board[pieceNumber/5][pieceNumber%5] = match_str;
        
        ++it;
        pieceNumber++;
    }
    
    currentPlayer = player_aux;
    
}
Exemple #5
0
/// get page from network
bool getPage(const char* url, int method, std::string& response)
{
	// Todo : add proxy and authentication support
	response.clear();
	string strurl = url;
	boost::regex regspace(" ");
	strurl = boost::regex_replace(strurl, regspace, "%20");
	HttpWrap *phttpwrap = new HttpWrap();
	response += phttpwrap->Get(strurl.c_str());
	delete phttpwrap;
    phttpwrap = NULL;
	if (response.length() < 200)
	{
		return false;
	} 
	else
	{
		boost::regex regRn("\\r\\n");
		response = boost::regex_replace(response, regRn, "\\n");
		boost::regex reg1("<meta(.*?)charset=(.*?)>",boost::regex::icase); 
		boost::smatch what;
		std::string::const_iterator start = response.begin();
		std::string::const_iterator end1 = response.end();
		if( boost::regex_search(start, end1, what, reg1) )
		{
			string strcharset(what[2].first,what[2].second);
			if((int)strcharset.length() == 0)
			{
				if(!IsUTF8(response.c_str(),response.length()))
				{
					string strtmp = "";
					iconv_string("gbk","utf-8", response.c_str(), response.length(),strtmp,1);
					response = strtmp;

				}
			}
			else 
			{
				if ((int)strcharset.find("UTF") >= 0 || (int)strcharset.find("utf") >= 0)
				{
					;
				} 
				else
				{
					string strtmp = "";
					iconv_string("gbk","utf-8", response.c_str(), response.length(),strtmp,1);
					response = strtmp;
				}
			}
		}
		else if(!IsUTF8(response.c_str(),response.length())/*pSpiderconf->m_config.ruleCollections[pSpiderconf->m_config.plans[m_plan_id].collectionRuleId].charset != "utf-8"*/)
		{
			string strtmp = "";
			iconv_string("gbk","utf-8", response.c_str(), response.length(),strtmp,1);
			response = strtmp;

		}
	}
	return true;
}
Exemple #6
0
string maincontenttagclean(string content)
{
	boost::regex reg4("((?i)(<param[^>]+>))");  
	content = boost::regex_replace(content,reg4,"");
	boost::regex reg9("((?i)(<pre>.*?</pre>))");  
	content = boost::regex_replace(content,reg9,"");
	//printf("aaaa=%s\n",content.c_str());
	boost::regex reg("(?i)</p>");
	content = boost::regex_replace(content,reg,"<pbeikeruishengxlktest>");
	//printf("bbbb=%s\n",content.c_str());
	//boost::regex reg5("((?i)<(?!p|img)[^>]+>)");
	boost::regex reg1("((?i)<(?!p|img|a|/a)[^>]+>)");
	content = boost::regex_replace(content,reg1,"");
//	printf("cccc=%s\n",content.c_str());
	boost::regex reg2("(?i)<pbeikeruishengxlktest>");
	content = boost::regex_replace(content,reg2,"</p>");
//	printf("dddd=%s\n",content.c_str());
	boost::regex reg3("((?i)(<a[^>]+>))");
	content = boost::regex_replace(content,reg3,"<a>");
//	printf("eeee=%s\n",content.c_str());
	boost::regex reg5("((?i)(<p[^>]+>))");
	content = boost::regex_replace(content,reg5,"<p>");	
	boost::regex reg6("((?i)(\\r))");
	content = boost::regex_replace(content,reg6,"");
	boost::regex reg7("((?i)(<a></a>))");
	content = boost::regex_replace(content,reg7,"");
	boost::regex reg8("((?i)(^\\s*$))");
	content = boost::regex_replace(content,reg8,"");
	//boost::regex reg9("((?i)(<pre[^>]+>))");
	//content = boost::regex_replace(content,reg9,"");
	boost::regex reg10("((?i)(&nbsp;))");
	content = boost::regex_replace(content,reg10,"");
	return content;
}
Exemple #7
0
QString HtmlUtil::findTitle(const QString &data)
{
    QRegExp reg("<!--([\\w\\s\\n{}\":/,]*)-->");
    int n = reg.indexIn(data);
    if (n < 0) {
        return QString();
    }
    QRegExp reg1("Title[\"\\s:]*([\\w\\s]*)[\\s\"]*");
    n = reg1.indexIn(reg.cap(1));
    if (n < 0) {
        return QString();
    }
    return reg1.cap(1);
}
Exemple #8
0
string Introductioncontenttagclean(string content)
{
	boost::regex reg("((?i)(<a[^>]+>.*?</a>))");
	content = boost::regex_replace(content,reg,"");
	boost::regex reg1("(?i)</p>");
	content = boost::regex_replace(content,reg1,"<pbeikeruishengxlktest>");
	boost::regex reg2("((?i)<(?!p|img|meta)[^>]+>)");
	content = boost::regex_replace(content,reg2,"");
	boost::regex reg3("(?i)<pbeikeruishengxlktest>");
	content = boost::regex_replace(content,reg3,"</p>");
	boost::regex reg4("((?i)(<p[^>]+>))"); 
	content = boost::regex_replace(content,reg4,"<p>");
	return content;
}
Exemple #9
0
string mainpagetagclean(string page)
{
	boost::regex reg1("((?i)(<script(.*?)</script>))");
	page = boost::regex_replace(page,reg1,"");
	boost::regex reg2("<!--(.*?)-->");
	page = boost::regex_replace(page,reg2,"");
	boost::regex reg3("((?i)(<iframe[^>]*>.*?</iframe>))");
	page = boost::regex_replace(page,reg3,"");
	boost::regex reg4("((?i)(<style(.*?)</style>))");
	page = boost::regex_replace(page,reg4,"");
	if(!WriteFile("source.html",(const char *)page.c_str(),page.length(),true))
	{
		printf("write source.html failed!\n");
	}
	return page;
}
Exemple #10
0
    bool Version::operator < (Version ver) {
        //Version string could have a wide variety of formats. Use regex to choose specific comparison types.

        regex reg1("(\\d+\\.?)+");  //a.b.c.d.e.f.... where the letters are all integers, and 'a' is the shortest possible match.

        //boost::regex reg2("(\\d+\\.?)+([a-zA-Z\\-]+(\\d+\\.?)*)+");  //Matches a mix of letters and numbers - from "0.99.xx", "1.35Alpha2", "0.9.9MB8b1", "10.52EV-D", "1.62EV" to "10.0EV-D1.62EV".

        if (regex_match(verString, reg1) && regex_match(ver.AsString(), reg1)) {
            //First type: numbers separated by periods. If two versions have a different number of numbers, then the shorter should be padded
            //with zeros. An arbitrary number of numbers should be supported.
            istringstream parser1(verString);
            istringstream parser2(ver.AsString());
            while (parser1.good() || parser2.good()) {
                //Check if each stringstream is OK for i/o before doing anything with it. If not, replace its extracted value with a 0.
                uint32_t n1, n2;
                if (parser1.good()) {
                    parser1 >> n1;
                    parser1.get();
                } else
Exemple #11
0
int main2()
{
	if(false){
		main1();
		return 0;
	}

	RegItem regScripting(HKEY_CLASSES_ROOT, REG_SCRIPTING);
	RegItem regWMI(HKEY_CLASSES_ROOT, REG_WMI);
	RegItem reg1(HKEY_CLASSES_ROOT, TEXT("Interface"));
	RegItem reg2(HKEY_CLASSES_ROOT, TEXT("Interface\\{766BF2AF-D650-11D1-9811-00C04FC31D2E}"));
	RegItem reg3(reg1.getHkey(), TEXT("{766BF2AF-D650-11D1-9811-00C04FC31D2E}"));
	RegItem reg4(HKEY_CLASSES_ROOT, TEXT("CLSID\\{0000002F-0000-0000-C000-000000000046}"));
	regScripting.dump();
	regWMI.dump();
	reg1.dump();
	reg2.dump();
	reg3.dump();
	reg4.dump();
	return 0;
}
bool readConfFile(QIODevice &device, QSettings::SettingsMap &map)
{
        // Is this the right conversion?
        const QString& data = QString::fromUtf8(device.readAll().data());

        // Split by a RE which should match any platform's line breaking rules
        QRegExp matchLbr("[\\n\\r]+");
        const QStringList& lines = data.split(matchLbr, QString::SkipEmptyParts);

        //QString currentSection = "";
        //QRegExp sectionRe("^\\[(.+)\\]$");
        QRegExp keyRe("^([^=]+)\\s*=\\s*(.+)$");
        QRegExp cleanComment("#.*$");
        QRegExp cleanWhiteSpaces("^\\s+");
        QRegExp reg1("\\s+$");

        for(int i=0; i<lines.size(); i++)
        {
                QString l = lines.at(i);
                l.replace(cleanComment, "");            // clean comments
                l.replace(cleanWhiteSpaces, "");        // clean whitespace
                l.replace(reg1, "");

                // Otherwise only process if it macthes an re which looks like: key = value
                if (keyRe.exactMatch(l))
                {
                        // Let REs do the work for us exatracting the key and value
                        // and cleaning them up by removing whitespace
                        QString k = keyRe.cap(1);
                        QString v = keyRe.cap(2);
                        v.replace(cleanWhiteSpaces, "");
                        k.replace(reg1, "");

                        // Set the map item.
                        map[k] = QVariant(v);
                }
        }

        return true;
}
SharedAnnotationData SwissProtPlainTextFormat::readAnnotation(IOAdapter* io, char* cbuff, int len, int READ_BUFF_SIZE, U2OpStatus& si, int offset, int seqLen){

    Q_UNUSED(seqLen);
    AnnotationData* a = new AnnotationData();
    SharedAnnotationData f(a);
    QString key = QString::fromLatin1(cbuff+5, 10).trimmed();
    if (key.isEmpty()) {
        si.setError(EMBLGenbankAbstractDocument::tr("Annotation name is empty"));
        return SharedAnnotationData();
    }
    a->name = key;
    if(key == "STRAND" || key == "HELIX" || key == "TURN"){
        a->qualifiers.append(U2Qualifier(GBFeatureUtils::QUALIFIER_GROUP, "Secondary structure"));
    }
    QString start= QString::fromLatin1(cbuff+15, 5).trimmed();
    if(start.isEmpty()){
        si.setError(EMBLGenbankAbstractDocument::tr("Annotation start position is empty"));
        return SharedAnnotationData();
    }
    QString end= QString::fromLatin1(cbuff+22, 5).trimmed();
    if(end.isEmpty()){
        si.setError(EMBLGenbankAbstractDocument::tr("Annotation end position is empty"));
        return SharedAnnotationData();
    }
    a->location->reset();

    if(key == "DISULFID" && start != end){
        a->location->op=U2LocationOperator_Order;
        U2Region reg1(start.toInt()-1,1);
        U2Region reg2(end.toInt()-1,1);
        a->location->regions.append(reg1);
        a->location->regions.append(reg2);
    }else{
        U2Region reg(start.toInt()-1,end.toInt() - start.toInt()+1);
        a->location->regions.append(reg);
    }

    if (offset!=0) {
        U2Region::shift(offset, a->location->regions);
    }


    QString valQStr = QString::fromLatin1(cbuff).split(QRegExp("\\n")).first().mid(34);
    QString nameQStr = "Description";
    bool isDescription=true;

    const QByteArray& aminoQ = GBFeatureUtils::QUALIFIER_AMINO_STRAND;
    const QByteArray& nameQ = GBFeatureUtils::QUALIFIER_NAME;
    //here we have valid key and location;
    //reading qualifiers
    bool lineOk = true;
    while ((len = io->readUntil(cbuff, READ_BUFF_SIZE, TextUtils::LINE_BREAKS, IOAdapter::Term_Include, &lineOk) ) > 0)  {
        if (len == 0 || len < QN_COL+1 || cbuff[K_COL]!=' ' || cbuff[0]!=fPrefix[0] || cbuff[1]!=fPrefix[1]) {
            io->skip(-len);
            if(isDescription && !valQStr.isEmpty()){
                isDescription=false;
                a->qualifiers.append(U2Qualifier(nameQStr, valQStr));
            }
            break;
        }
        if (!lineOk) {
            si.setError(EMBLGenbankAbstractDocument::tr("Unexpected line format"));
            break;
        }
        //parse line
        if(cbuff[A_COL] != '/'){//continue of description
            valQStr.append(" ");
            valQStr.append(QString::fromLatin1(cbuff).split(QRegExp("\\n")).takeAt(0).mid(34));
        }else{
            for (; QN_COL < len && TextUtils::LINE_BREAKS[(uchar)cbuff[len-1]]; len--){}; //remove line breaks
            int flen = len + readMultilineQualifier(io, cbuff, READ_BUFF_SIZE-len, len == maxAnnotationLineLen, len, si);
            //now the whole feature is in cbuff
            int valStart = A_COL + 1;
            for (; valStart < flen && cbuff[valStart] != '='; valStart++){}; //find '==' and valStart
            if (valStart < flen) {
                valStart++; //skip '=' char
            }
            const QBitArray& WHITE_SPACES = TextUtils::WHITES;
            for (; valStart < flen && WHITE_SPACES[(uchar)cbuff[flen-1]]; flen--){}; //trim value
            const char* qname = cbuff + QN_COL;
            int qnameLen = valStart - (QN_COL + 1);
            const char* qval = cbuff + valStart;
            int qvalLen = flen - valStart;
            if (qnameLen == aminoQ.length() && TextUtils::equals(qname, aminoQ.constData(), qnameLen)) {
                //a->aminoFrame = qvalLen == aminoQYes.length() && TextUtils::equals(qval, aminoQYes.constData(), qvalLen) ? TriState_Yes
                //             :  (qvalLen == aminoQNo.length()  && TextUtils::equals(qval, aminoQNo.constData(), qvalLen) ? TriState_No : TriState_Unknown);
            } else if (qnameLen == nameQ.length() && TextUtils::equals(qname, nameQ.constData(), qnameLen)) {
                a->name = QString::fromLocal8Bit(qval, qvalLen);
            } else {
                QString nameQStr = QString::fromLocal8Bit(qname, qnameLen);
                QString valQStr = QString::fromLocal8Bit(qval, qvalLen);
                a->qualifiers.append(U2Qualifier(nameQStr, valQStr));
            }
        }
    }
    return f;
}