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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda para metodo de buscar y modifcar en un .txt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para metodo de buscar y modifcar en un .txt  (Leído 2,658 veces)
pedro0620

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Ayuda para metodo de buscar y modifcar en un .txt
« en: 27 Septiembre 2016, 02:38 am »

Hola!
Estoy manejando un programa en Dev C++ donde tengo que crear un archivo de texto con las funciones fwrite,fread y fseek (creo que esta sirve para el metodo de buscar) usando estrucuras y con el uso de un menu que lleve:
1- Ingresar Registro
2- Mostrar Registros
3- Buscar Registro
4- Modificar Registro
5- Salir

Ayuda con el de buscar y modificar...
Tengo una parte del codigo de buscar pero no me salio..

Aqui esta mi codigo:


//Menu Manejo de Archivos C++
#include<cstdlib>
#include<iostream>
#include<string.h>
#include<conio.h>
#include<stdio.h>
#include<ctype.h>
#include<windows.h> //Para utilizar la funcion Sleep
using namespace std;

struct musica
{
    char id[5];
   char nombre_album[50];
   char nombre_artista[30];
   char genero[15];
   char tracks[2];
   char año[5];
   char salto='\n';
};

musica cargar_datos ();  // Cargar struct con los datos ingresados
musica album;

bool repite=true;
bool encontrado=false;
int i=0, band=0,fin=0;
void menu();
void crear();
void mostrar();
void salir();



int main()
{
   menu();              //Llamamos al metodo menu
    return 1;
}

void menu() //Metodo para el Menu
{
   int opcion=0;
    do
   {
       cout<<endl<<endl;
       system("Color F1");
        cout<<"\t       Menu de Manejo de Archivos en C++"<<endl<<endl;
        cout<<"\t\t[1]- Crear e Ingresar registros al Archivo"<<endl;
        cout<<"\t\t[2]- Mostrar Registros"<<endl;
        cout<<"\t\t[3]- Buscar Registros"<<endl;
        cout<<"\t\t[4]- Modificar un Registro"<<endl;
        cout<<"\t\t[5]- Salir"<<endl;
        cout<<"\t\t-------------------------------"<<endl;
        cout<<"\t\tOpcion: ";
        cin>>opcion;
        switch(opcion)
      {
            case 1:
                crear();
                system("pause>null");
                system("cls");
            break;
            case 2:
               mostrar();
                system("pause>null");
                system("cls");
            break;
            case 3:
         /*buscar();
                system("pause>null");
                system("cls");*/
            break;
            case 4:
                /*modificar();
                system("pause>null");
                system("cls");*/
            break;
            case 5:
                salir();
            break;
            default:
               cout<<endl;
               system("Color FC");
                cout<<"\t\tOpcion Incorrecta!"<<endl;
                Sleep(2000);
                system("Color F1");
                system("cls");
        }
    }while(opcion!=6);
    
}//Metodo menu

void crear() //Metodo para el crear el archivo
{
   FILE* CD=fopen("musica.txt", "w");

    string consulta = "s";
    memset(&album,0,sizeof(&album));

    musica registro;

    while(consulta!="n")
   {
        registro = cargar_datos();
        fwrite(&registro, sizeof(musica), 1, CD );
        cout<<endl;
        cout<<"\t\tDesea cargar mas registros [ s/n ]: ";
        getline(cin,consulta );
    }

    cout<<endl;
    cout<<"\t\t¡Registro Agregado Correctamente!"<<endl;
    fclose(CD);
}

musica cargar_datos()  //Funcion para ingresar los registros dentro del archivo
{
    
    string nombre="\0",apellido="\0",telefono="\0",direccion="\0",email="\0";
    //memset(&cliente,0,sizeof(&cliente));
    cout<<"\tIngrese los datos que se le piden a continuacion"<<endl<<endl;

    fflush(stdin);
    cout<<"\t\tID: ";
    gets(album.id);
    fflush(stdin);
    
    fflush(stdin);
    cout<<"\t\tNombre del Album: ";
    gets(album.nombre_album);
    //strcpy(album.nombre_album, nombre_album.c_str(); // función strcpy( destino, origen ) y método c_str() de la clase string
    fflush(stdin);

    fflush(stdin);
    cout<<"\t\tNombre del Artista: ";
    gets(album.nombre_artista);
    fflush(stdin);
    
    do
   {   
     fflush(stdin);
      cout<<"\t\tGenero: ";
      gets(album.genero);
      fflush(stdin);
      fin=strlen(album.genero);
     band=0;
      
      for(i=0;i<fin;i++)
     {
       if(((album.genero>='A')&&(album.genero<='Z'))||((album.genero>='a')&&(album.genero<='z'))||(album.genero==' '))
       {
         band=0;
       }
       else
       {
         i=fin;
         band=1;
         system("Color FC");
         cout<<"\tCaracteres invalidos... Intentelo de nuevo..."<<endl;
         Sleep(2000);
         system("Color F1");   
       }
      }
      
    }while(band==1);
    fflush(stdin);
    cout<<"\t\tNumero de Tracks: ";
    gets(album.tracks);
    fflush(stdin);
    
    fflush(stdin);
    cout<<"\t\tAnyo: ";
    gets(album.año);
    fflush(stdin);
    
    album.salto;
    
    return album;
}

void mostrar() //Metodo para leer el archivo
{
   FILE* CD = fopen("musica.txt", "r");

    musica registro;

    cout<<endl;
   cout<<"\t\tRegistros Ingresados en el Archivo"<<endl;
    cout<<"\t\t________________________________"<<endl;

    fread(&registro, sizeof(musica), 1, CD);
    //read <t_cliente> ( arch_cliente ); // ASI LO INVOCO SI USO EL TEMPLATE

    while(feof(CD) ==0)
   {    // TAMBIEN PODRIA PONER COMO CONDICIÓN feof( arch_cliente ) == 0
        cout<<"\t\tID: " <<registro.id<<endl;
        cout<<"\t\tNombre del Album: "<<registro.nombre_album<< endl;
        cout<<"\t\tNombre del Artista: "<<registro.nombre_artista<<endl;
        cout<<"\t\tGenero: "<<registro.genero<<endl;
        cout<<"\t\tNumero de Trakcs: "<<registro.tracks<<endl;
        cout<<"\t\tAnio: "<<registro.año<<endl;
        cout<<"\t\t________________________________"<<endl;

        fread(&registro, sizeof(musica), 1, CD);
        
   }

    cout<<endl;
    cout<<"\t\tSe completo la lectura del archivo..."<<endl;
    fclose(CD);
}

void salir() //Metodo para finalizar el programa
{
   cout<<endl;
    cout<<"\t\tPrograma Finalizado!! Hasta Pronto ^_^/"<<endl;
}

void buscar()
{
   
}

void modificar()
{

}



« Última modificación: 27 Septiembre 2016, 03:02 am por pedro0620 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda para buscar Tarjeta!!
Materiales y equipos
calahuche 8 4,679 Último mensaje 11 Noviembre 2009, 03:51 am
por andreselmejor
Cual es tu método para buscar objetivos en la red?
Hacking
Dawnus 2 3,769 Último mensaje 30 Octubre 2012, 12:41 pm
por MEGAHOM
modifcar bath con vb6
Programación Visual Basic
asdexiva 5 2,221 Último mensaje 15 Enero 2013, 00:49 am
por Danyfirex
[BATCH] host modifcar
Scripting
asdexiva 2 3,783 Último mensaje 31 Enero 2013, 17:05 pm
por asdexiva
Ayuda para que un metodo me devuelva un objeto
Java
rych 5 4,579 Último mensaje 2 Mayo 2016, 03:29 am
por + 1 Oculto(s)
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines