Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - elbaulico
Páginas: [1]
1
« en: Miércoles 28 de Enero de 2004, 14:54 »
Vale, gracias. Ahora entiendo muchas cosas.
2
« en: Miércoles 28 de Enero de 2004, 13:32 »
Tengo un archivo de texto de la forma: " direccion 45 notas 2 " y me gustaria actualizar ese archivo de forma que pueda quedar asi: " direccion 45 nueva_cadena notas 2 otra_nueva_cadena"
Este es un ejemplo de lo que mas o menos quiero hacer. Como tendria que abrir ese archivo ya existente? Lo tendria que abrir en modo lectura/escritura puesto que tengo que leer hasta el final de la primera linea para escribir algo despues no? Lo intentado asi
arhivo = fopen("Nombre_archivo","a+")
pero solo me lee bien el archivo pero cuando le pido que escriba:
"fputs(cadena,arvhivo)" no lo hace.
Gracias por adelantado
3
« en: Viernes 23 de Enero de 2004, 20:09 »
Perdonad si no me he explicado bien. Mi programa lee un fichero de texto que contiene un puñao de documentos. Lo que hago es coger palabra a palabra y las "trato", es decir, lo que hago es lematizar esa palabra (cojo solo el lexema de esa palabra), y cuando la lematizo la paso a un fichero de texto que solo contiene las palabras lematizadas.
Ahora lo que me pasa es que lo ejecuto y me hace las primeras palabras pero se para en una y me da el error que he dixo antes de "Thread Stopped".
Bien, ahora no se si es por falta de memoria o por que es. Yo tengo una variable global llamada cadena y hago esto: char *cadena; .... cadena = (char *)malloc(sizeof(char )); .... fscanf(in, "%s", cadena); .... free(cadena)
Estoy desesperaooooooooooo
4
« en: Viernes 23 de Enero de 2004, 19:00 »
El problema que tengo es que cuando leo muchas palabras y las trato me da el siguiente error:
"Thread stopped archivo.exe: Fault: access violations at 0x407db9: write of address 0x7663657c"
Esto por que puede ser? Es por que no reservo memoria o es por otra cosa que no contemplo?
5
« en: Viernes 23 de Enero de 2004, 13:02 »
Vamos a ver si alguien me puede ayudar. Tengo un archivo con numerosos documentos y el programa que quiero hacer es que me lea las palabras de esos documentos y las trate(cambie esa palabra por otra). El problema que tengo es que cuando tengo tantos documentos y tantas palabras me falta memoria o por lo menos me sale un error en la ejecucion. Me gustaria saber si alguien tiene alguna idea de como hacer que pueda leer una palabra, la trate y la escriba en otro archivo. Una solucion es declarar una variable global "char cadena[20]", pero asi no me funciona por lo de la memoria. Como estoy leyendo de un archivo de texto no se cuantos caracteres tiene cada palabra, y ahi me he quedado. El problema lo tengo al gestionar las palabras, por lo demas todo lo tengo hecho
6
« en: Martes 20 de Enero de 2004, 19:52 »
Gracias, lo intentare a ver, aunque tengo que cambiar mucho codigo para eso, pero bueno, eso es lo que hay.
7
« en: Martes 20 de Enero de 2004, 19:32 »
Muchas gracias, si se han quitado los warnings.
8
« en: Martes 20 de Enero de 2004, 11:30 »
Tengo un programa que me da muchisimos warnings y me no me deja ejecutarlo. Son solo de dos tipos: "Conversion may lose significant digits"
¿Como puedo hacer para quitarlos?
Me los da en lineas como las siguientes ch = fgetc(in); // Aqui me da warning donde char ch; FILE *in;
9
« en: Martes 20 de Enero de 2004, 10:26 »
Me faltaba un fclose por poner. Creo que eso esta solucionado. Gracias, pero ahora si alguien me puede explicar como liberar memoria de cadenas, ya que esas cadenas no se que longitud tienen hasta que no lea el archivo y coja una palabra(es decir, el array de caracteres se va llenando hasta que haya un espacio en blanco o un salto de linea). Yo lo que he hecho es definir una variable global llamada "char cadena[20];", pero no reservo memoria ni nada. En ese tema estoy muy flojo. Y al final me da un error "thread stopped. Fault access violation at 0xffffffff"
10
« en: Martes 20 de Enero de 2004, 09:33 »
Resulta que tengo un archivo llamado "stop_words.txt" que contiene una serie de palabras. El programa principal lo que hace es leer el contenido de otro archivo llamado "texto.txt", copiarlo a otro archivo llamado "salida.txt" pero que no contengan las palabras que hay en el archivo de palabras prohibidas("stop_words.txt"). Lo que pasa que al ejecutar el programa principal, no me da problema hasta que ha leido y guardado un numero considerable de palabras, es decir, al principio lo hace bien pero despues, dice que no puede abrir el archivo, habiendolo abierto antes muchisimas veces. La verdad es que no se por que pasa esto. Aqui os dejo la funcion por si os sirve de ayuda. Gracias
char cad[20]; // Variable global
// Devuelve un 1 si es stopwords y un 0 si no lo es int es_stopwords(unsigned char cadena[20]) { FILE *stop; // Archivo con las palabras stopwords char auxiliar[20]; char ch; int j = 0; char salto ='\n';
// Se abre el archivo con todos los documentos en modo texto y de solo lectura if ((stop = fopen("c:\\docum\\stop_words.txt", "r")) == NULL) { fprintf(stderr, "No se puede abrir el archivo stop_words); getch(); return 1; }
inicializa(auxiliar); while (!feof(stop)) { ch = getc(stop); if (ch != salto) { auxiliar[j]=ch; j++; }
if (ch == salto || strcmp(cad,auxiliar) == 0) { if (strcmp(cad,auxiliar)== 0) return 1; else { inicializa(auxiliar); j=0; } }// Fin del if else if (ch == salto) { inicializa(auxiliar); j=0; } // Fin de else } // Final del archivo fclose(stop); // Se cierra el archivo con las stopwords return 0; } // Fin de es_stopwords
// Inicializa la cadena auxliar void inicializa(unsigned char cadena[20]) { //free(cad); //cadena=(char *) malloc (20*sizeof(char));
for(int i=0;i<=20;i++) cadena='\0'; }// Fin de inicializacion
Páginas: [1]
|