Foros del Web » Programación para mayores de 30 ;) » C/C++ »

igualar el contenido de dos ficheros.txt

Estas en el tema de igualar el contenido de dos ficheros.txt en el foro de C/C++ en Foros del Web. hola a todos necesito crear un programa que lea dos archivos con listas de cosas por ejemplo lista1.txt y lista2.txt después compare elemento a elemento, ...
  #1 (permalink)  
Antiguo 22/09/2012, 20:38
 
Fecha de Ingreso: septiembre-2012
Ubicación: estado de mexico
Mensajes: 2
Antigüedad: 11 años, 7 meses
Puntos: 0
igualar el contenido de dos ficheros.txt

hola a todos necesito crear un programa que lea dos archivos con listas de cosas por ejemplo lista1.txt y lista2.txt después compare elemento a elemento, y si el elemento "a" de la lista 1 esta en la lista 2 no hace nada pero sino esta lo copia; después hacer lo mismo con todos los elementos de la lista 2 sin importar el orden, solo requiero que al final ambas listas leídas originalmente sean iguales entre si.
  #2 (permalink)  
Antiguo 23/09/2012, 14:53
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: igualar el contenido de dos ficheros.txt

Hola! no se hacen tareas, postia el avance q tengas de codigo y plantea dudas concretas


Saludos
  #3 (permalink)  
Antiguo 23/09/2012, 16:33
 
Fecha de Ingreso: septiembre-2012
Ubicación: estado de mexico
Mensajes: 2
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: igualar el contenido de dos ficheros.txt

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<string.h>
  4. int main()
  5. {
  6.         FILE *archivo,*archivo2;
  7.  
  8.         char caracteres1[100],caracteres2[100];
  9.  int similitud;
  10.         archivo = fopen("hola.txt","a+");
  11.         archivo2=fopen("este.txt","a+");
  12.         if (archivo == NULL&&archivo2 == NULL)
  13.                 exit(1);
  14.  
  15.         printf("\nEl contenido del archivo de prueba es \n\n");
  16.         while (feof(archivo) == 0)
  17.         {
  18.                 fgets(caracteres1,100,archivo);
  19.                 while(feof(archivo2)==0){
  20.                 fgets(caracteres2,100,archivo2);
  21.                 similitud=strcmp(caracteres1,caracteres2);
  22.                 if(similitud !=0){
  23.                 strcpy("caracteres1","caracteres2");
  24.                 }
  25.                 }
  26.                 rewind(archivo2);
  27.         }
  28.         system("PAUSE");
  29.  
  30.         fclose(archivo);
  31.         return 0;
  32. }

aqui esta aunque en sí, mas parece que no se lo que estoy haciendo, esque en lo que es la manipulacion de archivos apenas estoy aprendiendo y no me gusta como me va quedando.

ahora la pregunta concreta es si el ciclo que uso esta bien hecho o acaso la forma en que lo pense esta mal planteado.

saludos y gracias.
  #4 (permalink)  
Antiguo 24/09/2012, 11:36
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: igualar el contenido de dos ficheros.txt

Por lo que veo del programa tus dos archivos tienen listas de palabras que es lo que tenes que comparar

Cita:
ahora la pregunta concreta es si el ciclo que uso esta bien hecho o acaso la forma en que lo pense esta mal planteado.
dentro de todo no esta mal planteado. Lo que hay que cambiar es el if que esta dentro del while interno, tenes que sacarlo de ahi para que funcione correctamente. Otra cosa es que estas usando mal el strcpy(revisa como se usa), igual para este caso tenes que usar la funcion fputs para poder guardar en el archivo.
Haciendo los cambios quedaria asi:

Código C:
Ver original
  1. similitud=1;
  2.             while (feof(archivo) == 0)
  3.             {
  4.                     fgets(caracteres1,100,archivo); // toma una palabra del archivo 1
  5.                     while(feof(archivo2)==0 && similitud!=0){ // mientras no sea EOF y similitud distinto de 0
  6.                        fgets(caracteres2,100,archivo2); // toma una palabra del archivo 2
  7.                        similitud=strcmp(caracteres1,caracteres2); // compara las palabras
  8.                     }
  9.                     if(similitud !=0){ // si similitud es distinto de 0, se guarda en el archivo 2
  10.                        fputs(caracteres1,archivo2);
  11.                     }
  12.                     rewind(archivo2);
  13.             }

Fijate que de esta forma solo se guardan las palabras del archivo1 que no existen en el archivo 2. Ahora te quedaria hacer el proceso inverso(palabras del archivo2 guardar en el archivo1)..


Sino se entiende algo segui preguntando. Saludos
  #5 (permalink)  
Antiguo 24/09/2012, 11:50
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: igualar el contenido de dos ficheros.txt

Otra cosa, es que cuando revisa si abre los archivos, deberias poner las barras verticales en vez de los &&, porque en ese caso, solamente si ambos txt no andan, cierra.

Etiquetas: .txt, contenido, igualar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:55.