Esempio n. 1
0
const char *XMLParser::getNextTag(){
   pos++;
   const char *s = seekChar(CLOSETAG);
   pos++;

#ifdef NEWLINEFIX
   //Finxing '\n' after all using HTML tags, if any.
   //This is not on spec, but's cool
   //Of course we shall support old DOS too '\r\n'
   if (data[pos]=='\r')      pos++;
   if (data[pos]=='\n')      pos++;
#endif

   return s;
};
Esempio n. 2
0
const char *XMLParser::seekNextTag(){
   return seekChar(OPENTAG);
};
Esempio n. 3
0
int main(int argc, char *argv[]){
	
	FILE *arquivo1, *arquivo2;
	Parvore arvore;
	PLista lista, lista2, lista3, p, z, y;

	char carac_text, carac_dicio;
	char word[2000000];
	char word_text[2000000];
	char other_word[2000000];
	int i = 0, tam = 0, j = 0, lines = 1, k;

	inicializaArvore(&arvore);
	inicializaLista(&lista);
	inicializaLista(&lista2);
	inicializaLista(&lista3);

	arquivo1 = fopen(argv[1], "r");
	arquivo2 = fopen(argv[2], "r");


	//PEGANDO TODAS AS PALAVRAS DO DICIONARIO E INSERINDO NA ARVORE TRIE
	while((carac_dicio = fgetc(arquivo1)) != EOF){

		if(carac_dicio != '\n'){
			word[i] = carac_dicio;
			i++;
		}
		else{
			word[i] = '\0';
			i = 0;
			inserir_palavra(&arvore, strlen(word), word);
		}
	}


	//LENDO E TRATANDO TODOS OS CARACTERES DO ARQUIVO2
	while((carac_text = fgetc(arquivo2)) != EOF)
		tam++;

	//criando string com todo o conteudo do texto
	char string[tam];
	rewind(arquivo2);
	i = 0;
	while((carac_text = fgetc(arquivo2)) != EOF){
		string[i] = carac_text;
		i++;
	}
	string[i] = '\0'; //o texto todo esta nessa string
	i = 0;

	for(j = 0; j < tam; j++){

		if((seekChar(separadores,string[j])) && (i == 0)){
			//j++;
			continue;
		}
		if(seekChar(separadores, string[j])){

			word_text[i] = '\0';
			strcpy(other_word,word_text);
			i = 0;

			for(k = 0; k < strlen(word_text); k++)
				word_text[k] = tolower(word_text[k]);

			if(buscar_palavra(arvore, word_text) == 1){
				inserir_crescente(&lista, word_text);
			}
			else{
				inserir_final(&lista2, other_word);
			}
		}
		else{
			word_text[i] = string[j];
			i++;
		}
	}

	i = 0;
	for(p = lista; (p != NULL); p = p->prox){
		int aux = 1;
		int number;

		printf("%s", p->palavra);
		for(j = 0; j < tam; j++){

			if(seekChar(separadores, string[j])){
				word_text[i] = '\0';
				i = 0;

				for(k = 0; k < strlen(word_text); k++)
					word_text[k] = tolower(word_text[k]);

				if((strcmp(word_text,p->palavra)) == 0){

					if (lines != number){
						if(aux == 1){
								printf(" %d", lines);
								number = lines;

						}
						else{
								printf(", %d", lines);
								number = lines;

						}
					aux = 0;
					}
				}

				if(string[j] == '\n'){
					lines++;
					number = lines-1;
				}

			}
			else{
				word_text[i] = string[j];
				i++;
			}
		}
		printf("\n");
		lines = 1;
	}
	//imprimir(lista2);
	for(z = lista2; (z != NULL); z = z->prox){
		printf("%s ", z->palavra);
		//for(y = lista3; (y != NULL); y = y->prox){
			buscarMenor(arvore, z->palavra);
			printf("%s\n", menorpalavra);
			menorpalavra[0] = '\0';
			menor = 100;

	}
}