elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:25  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Ayuda con comparación de ficheros en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con comparación de ficheros en C++  (Leído 341 veces)
Deby93

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda con comparación de ficheros en C++
« en: 1 Diciembre 2011, 22:19 »

Hola, necesitaría ayuda con un programa, que compara dos archivos/ficheros con números enteros, compáralos entre si, y ordenar los números de ambos ficheros de menor a mayor y guardarlo en otro fichero.
Acá dejo lo que tengo de código. Agradecería su ayuda.


/*
    1. Crear dos archivos que contengan la siguiente informacion:
           
            archivo 1: 1    5   11  15  19  21
            archivo 2: 2    4   6   8   10  14
           
    2. Con los archivos 1 y 2 generar un tercer archivo donde se guarde la información
        ordenada, es decir, el resultado debeerá ser:
           
            1 2 4 5 6 8 10 11 14 15 19 21
           
    NOTA: no utilizar vectores
   
    3. Agregar las opciones para mostrar por pantalla los 3 archivos.


*/

#include<iostream.h>
#include <stdio.h>

struct numeros{
   
    int num;
    int nu;
   
}nume, numeA, numeB;

FILE *fichero;
FILE *archivo;
FILE *doc;
void menu();
void cargar();
void MostrarFicheroU();
void cargarS();
void MostrarFicheroD();
void CargarT();
void MostrarFicheroT();

main (){
   
    menu();
   
}

void menu(){
   
    int opcion =0;
   
    cout << "\n Ingrese la opcion que desee ";
    cout << "\n1.Cargar 1° Fichero \n2.Mostrar Fichero 1 \n3.Cargar 2° Fichero \n4.Mostrar Fichero 2 \n5.Fichero 3 \n6.Mostrar Fichero 3 \n7.Salir \n";
    cin >> opcion;
    system("cls");
    switch (opcion){
       
        case 1:
                cargar();
                break;
        case 2:
                MostrarFicheroU();
                break;
        case 3:
                cargarS();
                break;
        case 4:
                MostrarFicheroD();
                break;
        case 5:
                CargarT();
                break;
        case 6:
                MostrarFicheroT();
                break;
        case 7:
                system("exit");
                break;
        default:
                cout<<"\nOpcion incorrecta";
                menu();
    }

}

void cargar(){
   
    fichero =fopen("Fichero.dat","w");
   
    cout << "\n \tIngrese los numeros del primer Fichero ";
   
    for (int r=0; r<=5; r++){
       
        cout<< "\nIngrese " << r << "° numero del fichero";
       
        cin >> nume.num;
       
        fwrite(&nume, sizeof(struct numeros), 1, fichero);
       
    }
   
    fclose(fichero);
    menu();
}

void MostrarFicheroU(){

    fichero = fopen("Fichero.dat", "r");
 
        if(fichero == NULL)
        {
                printf("\nFichero no existe! \nPor favor creelo");
                menu();
        }
 
        fread(&nume, sizeof(struct numeros), 1, fichero);
 
        cout<<"\n \t Numeros primer fichero";
 
        while(!feof(fichero))
        {
                cout<<"\n "<< nume.num;
                fread(&nume, sizeof(struct numeros), 1, fichero);
       
        }
       
    fclose (fichero);
    menu();
}

void cargarS(){
   
    archivo = fopen("Archivo.dat","w");
   
    cout << "\n \tIngrese los numeros del primer Fichero ";
   
    for (int r=0; r<=5; r++){
       
        cout<< "\nIngrese " << r << "° numero del fichero";
       
        cin >> numeA.num;
       
        fwrite (&numeA, sizeof(struct numeros), 1, archivo);
       
    }
   
    fclose(archivo);
    menu();
}

void MostrarFicheroD(){
 
    archivo = fopen("Archivo.dat", "r");
 
    if(archivo == NULL)
    {
        printf("\nFichero no existe! \nPor favor creelo");
        menu();
    }
 
    fread(&numeA, sizeof(struct numeros), 1, archivo);
 
    cout<<"\n \t Numeros segundo fichero";
 
    while(!feof(archivo))
    {
        cout<<"\n "<< numeA.num;
        fread(&numeA, sizeof(struct numeros), 1, archivo);
       
    }
       
    fclose (archivo);
    menu();
}

void CargarT(){
   
    doc = fopen("Documento.dat","w");
    fichero = fopen ("Fichero.dat", "r");
    archivo =fopen ("Archivo.dat", "r");
   
    int menor=0;
    int nu=0;
    fread (&nume, sizeof(struct numeros), 1, fichero);
    fread (&numeA, sizeof(struct numeros), 1, archivo);
   
    while(!feof (fichero)){
       
        while(!feof(archivo)){
           
            if ((nume.num < numeA.num)&&(nume.num > menor))
            {
                menor = nume.num;
                nu = numeA.num;       
            }
            else
            {
                menor = numeA.num;
                nu = nume.num;   
            }
           
            fread (&numeA, sizeof(struct numeros), 1, archivo);
            fread (&nume, sizeof(struct numeros), 1, fichero);
           
            numeB.num = menor;
            numeB.nu = nu;
            fwrite(&numeB, sizeof(struct numeros), 1, doc);   
           
        }
       
    }

    fclose(fichero);
    fclose(archivo);
    fclose(doc);
    menu();
}

void MostrarFicheroT(){
   
    doc = fopen("Documento.dat", "r");
 
    if(doc == NULL)
    {
        printf("\nFichero no existe! \nPor favor creelo");
        menu();
    }
 
    fread(&numeB, sizeof(struct numeros), 1, doc);
 
    cout<<"\n \t Numeros tercer fichero";
 
    while(!feof(doc))
    {
        cout<<"\n "<< numeB.num << "\n" << numeB.nu;
        fread(&numeB, sizeof(struct numeros), 1, doc);
       
    }
       
    fclose (doc);
    menu();
}

Del código lo único que no funciona del todo bien es la parte de la comparación.


En línea

Después de todo tu eres tu única muralla, si no te saltas no darás un sólo paso.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con comparacion de cadenas!!!!! (URGENTE)!!!
Programación C/C++
winfuck 5 482 Último mensaje 4 Octubre 2006, 01:56
por CA
ayuda con comparacion de cadenas en excel.
Programación Visual Basic
Railil 4 420 Último mensaje 24 Noviembre 2006, 17:04
por Railil
Ayuda comparacion de Sonido
Programación Visual Basic
Saok Dagon 3 464 Último mensaje 11 Diciembre 2007, 07:44
por Saok Dagon
ayuda con ficheros PDF
Dudas Generales
coyote_cojo 4 1,148 Último mensaje 26 Febrero 2011, 06:58
por coyote_cojo
ayuda con ficheros
Programación C/C++
josue_tux 3 494 Último mensaje 3 Diciembre 2011, 01:36
por Deby93
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines