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(®,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(®1,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(®1,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; }
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; }
QString DecorateGCpp::decorate(QString str) { QString result; QRegExp reg1("(.+):(\\d+):(.+) (\\[.+\\]) (\\[[0-9]+\\])"); QRegExp reg2("(\\D+): (\\d+)"); str.replace("<", "<"); str.replace(">", ">"); // str.replace("&", "&"); // 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; }
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; }
/// 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; }
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)( ))"); content = boost::regex_replace(content,reg10,""); return content; }
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); }
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; }
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; }
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
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; }