elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como puedo detectar una palabra y comprobar si la 2 linea esta vacía en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como puedo detectar una palabra y comprobar si la 2 linea esta vacía en C  (Leído 620 veces)
Alberto n

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Como puedo detectar una palabra y comprobar si la 2 linea esta vacía en C
« en: 5 Marzo 2019, 02:28 am »

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.


« Última modificación: 5 Marzo 2019, 03:07 am por Alberto n » En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 437



Ver Perfil WWW
Re: Como puedo detectar una palabra y comprobar si la 2 linea esta vacía en C
« Respuesta #1 en: 5 Marzo 2019, 05:34 am »

Usa banderas. Por ejemplo, una vez que encuentresun salto de línea usa una variable y la pones a 1. Luego si lee un caracter que no sea un espacio pones esa variable a 2. Si al encontrar otro salto de línea la variable esa, la bandera, sigue a 1 significará que esa línea anterior estaba vacía y de lo contrario que contenía algo. Si la finalidad es descartar las líneas vacías usa un contenedor temporal y luego vuelcalo donde quieras en el caso de contener algo, usa un bucle si eres novato (existe funciones para copiar bloques de memoria, pero hay que usar punteros).


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[batch] SCRIPT comprobar carpeta VACIA
Scripting
postrof 2 11,211 Último mensaje 14 Abril 2009, 12:16 pm
por postrof
Como saber si una carpeta esta vacia « 1 2 »
Programación Visual Basic
Fabricio 19 15,448 Último mensaje 8 Abril 2009, 19:16 pm
por Dessa
como buscar una palabra en la ultima linea de un txt con un bat
Scripting
patorejo 5 5,259 Último mensaje 13 Agosto 2010, 21:52 pm
por flony
Si variable PHP vacia(no empty(),is_null,isset) que no tome 0 como vacia en POST
PHP
Graphixx 9 20,633 Último mensaje 12 Mayo 2012, 18:58 pm
por it3r
[SOLUCIONADO] ¿Como comprobar que imagen está usando un control?
.NET (C#, VB.NET, ASP)
Eleкtro 3 1,625 Último mensaje 24 Diciembre 2012, 18:14 pm
por $Edu$
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines