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

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.


Temas - elbaulico

Páginas: [1]
1
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

2
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

3
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;

4
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]