• Miércoles 6 de Noviembre de 2024, 03:46

Mostrar Mensajes

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
C/C++ / Re: Leer Y Escribir En Archivo
« en: Miércoles 28 de Enero de 2004, 14:54 »
Vale, gracias. Ahora entiendo muchas cosas.

2
C/C++ / Leer Y Escribir En Archivo
« 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
C/C++ / Re: Gestion Memoria Con Archivos Y Cadenas
« 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
C/C++ / Re: Gestion Memoria Con Archivos Y Cadenas
« 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
C/C++ / Gestion Memoria Con Archivos Y Cadenas
« 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
C/C++ / Re: Problemas Con Fopen
« 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
C/C++ / Re: Demasiados Warnings
« en: Martes 20 de Enero de 2004, 19:32 »
Muchas gracias, si se han quitado los warnings.

8
C/C++ / Demasiados Warnings
« 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
C/C++ / Re: Problemas Con Fopen
« 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
C/C++ / Problemas Con Fopen
« 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]