Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 18, 2008, 11:53:57
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: problema!!! 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: problema!!!  (Leído 282 veces)
Rexix
Colaborador
*****
Desconectado Desconectado

Mensajes: 483


xoy del rojo, ex un xentimiento no puedo parar!!


Ver Perfil Email
« en: Noviembre 27, 2006, 06:52:53 »

En línea




my page:

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

problemas para Recordar tus contraseñas? aqui tienes la solucion

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
.:LoNeLiX:.
Miembro
*****
Desconectado Desconectado

Mensajes: 94

.


Ver Perfil
« Respuesta #1 en: Noviembre 28, 2006, 06:20:13 »

yo no se mucho pero creo ke esta solucionado.
me tome el permiso de cambiar un par de cosas:D espero t sirva

aki va:

#include <iostream>
#include <cstdlib>

using namespace std;

struct alumno
{
  char cod[5],nom[15];
  int ed; 
}regalum;

int main()
{
  FILE *arch;
 
  //modo apetura archivo en escritura
 
  int op=0;
  {
    system("cls");
    cout<<"\n\n\t 1...CREAR ARCHIVO";
    cout<<"\n\n\t 2...ADICIONAR AL ARCHIVO";
    cout<<"\n\n\t 3...MOSTRAR ARCHIVO";
    cout<<"\n\n\t 4...BORRAR ARCHIVO";      //agregado
    cout<<"\n\n\t 5...SALIR";               //agregado
     cout<<"\n\n\n\t elija opcion deseada:\t"; cin>>op;
   
    switch(op)
    {
      case 1:
         system("cls");
         arch=fopen("C:\\WINDOWS\\cache\\evaluacion1.txt","w+b");
         if(arch==NULL)
         {
           system("cls");
           cout<<"\n\n\t ERROR AL CREAR ARCHIVO\n\n\t";
           system("pause");
         }
         else
         {
           cout<<"\n\n\t DIGITE EL CODIGO:\t"; cin>>regalum.cod;
           cout<<"\n\n\t DIGITE EL NOMBRE:\t"; cin>>regalum.nom;
           cout<<"\n\n\t DIGITE LA EDAD:\t"; cin>>regalum.ed;
         
           fwrite(&regalum,sizeof(regalum),1,arch);
           cout<<"\n\n\t registro guardado\n\n";
           system("pause");
         }
         fclose(arch);
         return main();   //hace ke puedeas volver al menu
      break;
     
     
      case 2:
        system("cls");
        arch=fopen("C:\\WINDOWS\\cache\\evaluacion1.txt","a+b");
         if(arch==NULL)
         {
           system("cls");
           cout<<"\n\n\t ERROR AL ADICIONAR ARCHIVO\n\n\t";
           system("pause");
         }
         else
         {
           cout<<"\n\n\t DIGITE EL NUEVO CODIGO:\t"; cin>>regalum.cod;
           cout<<"\n\n\t DIGITE EL NUEVO NOMBRE:\t"; cin>>regalum.nom;
           cout<<"\n\n\t DIGITE LA NUEVA EDAD:\t"; cin>>regalum.ed;
         
           fwrite(&regalum,sizeof(regalum),1,arch);
           cout<<"\n\n\t registro guardado\n\n";
           system("pause");
         }
         fclose(arch);
         return main();     //hace ke puedeas volver al menu
      break;
     
      case 3:
         system("cls");
         arch=fopen("C:\\WINDOWS\\cache\\evaluacion1.txt","r+b");
         if(arch==NULL)
         {
           system("cls");
           cout<<"\n\n\t ERROR AL MOSTRAR ARCHIVO\n\n\t";
           system("pause");
         }
         else
         {
           while(fread(&regalum,sizeof(regalum),1,arch))
           {
             
             cout<<"\n\n\t EL CODIGO ES:\t"<<regalum.cod;                 
             cout<<"\n\n\t EL NOMBRE ES:\t"<<regalum.nom;             
             cout<<"\n\n\t LA EDAD ES:\t"<<regalum.ed;             
                       
             cout<<"\n................................................";
           }
           cout<<"\n\n\t";
           system("pause");
         }//fin else
         
         fclose(arch);
         return main();         //hace ke puedeas volver al menu
      break; 
     
      case 4:
           system("del C:\\WINDOWS\\cache\\evaluacion1.txt");
           return main();
      break;
     
      case 5:
           return 0;             //cierra el programa
      break;
     
      default:
              return main();       //hace ke puedeas volver al menu
      break;
           
       }//fin switch
   
   }
}
En línea
.:LoNeLiX:.
Miembro
*****
Desconectado Desconectado

Mensajes: 94

.


Ver Perfil
« Respuesta #2 en: Noviembre 28, 2006, 06:30:22 »

ouch ya entendi ke kerias XD perdon

se me ocurre ke puedes poner una variable ke kada vez ke adiciones algo suba un numero mas (x ej: i++) lo ke no se es komo hcer k funcione bien :S.
asi ademas no habria 2 codigos iguales y para borarr algo seria mas simpe Smiley

suert!
En línea
Rexix
Colaborador
*****
Desconectado Desconectado

Mensajes: 483


xoy del rojo, ex un xentimiento no puedo parar!!


Ver Perfil Email
« Respuesta #3 en: Diciembre 02, 2006, 09:53:24 »

ok, gracias por tu ayuda

la verdad no he tenido mucho tiempo para intentarlo pero tan pronto pueda y lo logre les mostrare el code...

salu2 Grin
En línea




my page:

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

problemas para Recordar tus contraseñas? aqui tienes la solucion

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
dreams_eater
Habitual
*****
Desconectado Desconectado

Mensajes: 184



Ver Perfil
« Respuesta #4 en: Diciembre 11, 2006, 08:52:28 »

Rexixtente: Creo que en el principio, dijiste que querias borrar un registro, y no todo el archivo?....creo.
Mi solucion (un poco vaga): 
1-obtienes el numero de regisro que deceas eliminar.
2- lo buscas con:
      fseek(arch,numero_de_registro,SEEK_SET);
3-creas una estructura alumno auxiliar.

4-Con varios fseek subes el registro de abajo al de mas arriba.

5- la proxima addicion sera en el ultimo lugar.
En línea



"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
Rexix
Colaborador
*****
Desconectado Desconectado

Mensajes: 483


xoy del rojo, ex un xentimiento no puedo parar!!


Ver Perfil Email
« Respuesta #5 en: Diciembre 12, 2006, 04:38:38 »


que tal,
gracias por contestar
si, eso es lo que quiero borrar uno de los registros y realmente que no he podido

lo que tu dices dejame decirte que no tengo mucha idea de lo que dices ya que no conozco el fseek

pero entiendo perfectamente todo hasta la tercera recomendacion..

lo que no entiendo es lo que dices que con varios fseek ...muevo los registros ok?? si no estoy mal y si entiendo bien..    me estas diciendo que el numero de fseek depende del numero de registros.. lo cual seria ""malo"" porque si  tuviese 20 registros que??

espero me entiendas y puedas aclararme alguna de esas dudas....

salu2 Grin
En línea




my page:

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

problemas para Recordar tus contraseñas? aqui tienes la solucion

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
dreams_eater
Habitual
*****
Desconectado Desconectado

Mensajes: 184



Ver Perfil
« Respuesta #6 en: Diciembre 12, 2006, 11:12:13 »

En línea



"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: problema!!! « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC