Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Alberto n

#1
Me pueden ayudar con este problema en lenguaje C...

Como puedo buscar una palabra en especifico en un archivo, y al encontrarla realizar una pregunta de que si la segunda línea que sigue está vacia se la salte o que la borre...

Y que luego continue buscando en el resto del archivo, realizando la misma operación.
#2
Tengo el siguiente código en C, el cual lee el archivo.

#include <stdio.h>
#include <stdlib.h>

int main(){
 FILE* archivo = fopen("leer.txt","r");
 char * buffer = NULL;
 int i, c;
 c = fgetc(archivo);
 while(!feof(archivo))
   {
     buffer = (char*)realloc(NULL, sizeof(char));
       i = 0;
     while( c != '\n')
       {
         buffer = c;
         i++;
         buffer = (char*)realloc(buffer, (i+1)*sizeof(char));
         c = fgetc(archivo);
       }
     /*Agrego el \n al buffer*/
     buffer = (char*)realloc(buffer, (i+2)*sizeof(char));
     buffer = c;
     buffer[i+1] = 0;
     /*Trabajar con el buffer*/
     printf("%s", buffer);
     free(buffer);
     c = fgetc(archivo);
   }
 
}


lo que deseo es que al detectar una palabra, este cuente dos lineas más y verifique si la linea esta vacía (en blanco), si es así, que no la copie al archivo nuevo, y continué buscando en las siguientes lineas.

Soy bastante nuevo en esto, y no he logrado como resolverlo, por eso pido algo de ayuda.

Tengo un archivo con estas lineas, donde la palabra que deseo buscar es: "FACTOR", al encontrarla debe contar 2 lineas más y comprobar si esa linea esta en blanco (vacía), si es así, no copiar esa linea y continuar buscando la misma palabra en las siguientes lineas y volver a comprobar al sumar 2 lineas más es vacía.

1- %%XGF (FACTOR)
2- P0
3-
4-                                                                         FUERA
5-   LEIVA

Pido de su ayuda, ya que no he podido realizarlo.