// vim: set expandtab tabstop=8 shiftwidth=8 foldmethod=marker: /** @file leeHTML.cpp * Lee de HTML. * * @package Mt77 * @author Vladimir Támara Patiño. vtamara@pasosdeJesus.org * Dominio público. 2009. Sin garantías * http://creativecommons.org/licenses/publicdomain/ * @version $Id: leeHTML.cpp,v 1.4 2010/01/06 10:09:30 vtamara Exp $ */ #include #include #include #include "NodoTrieS.hpp" using namespace std; void insertaNormalizada(string pal, long ndoc, long p, NodoTrieS &t, bool normalizaPal) { if (pal.size() >= MAXCAD) { pal = pal.substr(0, MAXCAD); } //clog<<"Leida "<= 0) { t.insertaNormalizando(pal, ndoc, p, normalizaPal); } } /** Construye un trieS a partir de un HTML */ void leeHTML(const char *na, long ndoc, NodoTrieS &t, bool normalizaPal) { ASSERT(na!=NULL && na[0] != '\0' && strlen(na)= 0); string pal = ""; //clog<<"Leyendo de "<') { estado = 0; p = fs.tellg(); pal = ""; //clog << "De 2 a 0" << endl; } else if (estado == 0 && isspace(*c)) { estado = 1; insertaNormalizada(pal, ndoc, p, t, normalizaPal); pal = ""; //clog << "De 0 a 1" << endl; } else if (estado == 1 && *c == '<') { estado = 2; //clog << "De 1 a 2" << endl; } else if (estado == 1 && !isspace(*c)) { estado = 0; p = fs.tellg(); pal = (char *)c; //clog << "De 1 a 0" << endl; } else if (estado == 0) { pal = pal + string((const char *)c); } } while (!fs.eof()); fs.close(); insertaNormalizada(pal, ndoc, p, t, normalizaPal); }