21/09/2008, 15:03
|
| | Fecha de Ingreso: mayo-2007 Ubicación: Buenos aires
Mensajes: 19
Antigüedad: 17 años, 7 meses Puntos: 0 | |
Porque me tira error el programa? wenas tengo problemas con 2 funciones bool una se fija si el archivo existe y si no hay la otra la crea eso tendria que pasar si no fuera porque me tira error de windows el compilador.. por eso las desabilite y crea un archivo nuevo cada ves que entra -_- cosa que no quiero, por eso quiero saber porque me tira error y si se puede solucionar?
el codigo este no sirve porque lo recorte porque no era muy largo pero ahi se ven las funciones bool que me tiran error
Código:
#include <iostream>
#include <conio.c>
#include <teclado.h>
using namespace std;
struct tagenda
{
char nom[30];
char ape[30];
unsigned long tel;
char dir[30];
char eml[30];
int b;
};
bool abrir(char *);
bool crear(char *);
void ingresar(tagenda *);
void modificar(tagenda *);
void mostrar(tagenda *);
void mtodo(tagenda *);
void mxnom(tagenda *);
void mxdir(tagenda *);
void mxtel(tagenda *);
void mxape(tagenda *);
void mxem(tagenda *);
void mbaja(tagenda *);
void baja(tagenda *);
void cr(tagenda *);
void rbaja(tagenda *);
//char* bd(tagenda *);
//struct tp br(tp *);
int main (int argc, char* argv[])
{
tagenda age;
char op;
char *c;
int l;
do
{
clrscr();
cout<<" Presione las teclas Numerales para acceder a cada Opcion "<<endl<<endl<<endl;
cout<<"1-Agregar Contactos"<<endl;
cout<<"2-Modificar Datos de los Contactos"<<endl;
cout<<"3-Mostrar Contactos"<<endl;
cout<<"4-Dar de Baja a un contacto"<<endl;
cout<<"5-Contar la cantidad de Contactos que Tengo"<<endl;
cout<<"6-Descripcion art"<<endl;
cout<<"7-Recuperar Un Registro Dado de Baja"<<endl;
cout<<"8-Ayuda"<<endl;
cout<<"s-Presione La Tecla 'S' para Salir del Programa"<<endl;
op=getch();
switch(op)
{
case '1':
ingresar(&age);
break;
case '2':
modificar(&age);
break;
case '3':
mostrar(&age);
break;
case '4':
baja(&age);
break;
case '5':
cr(&age);
break;
case '6':
// c=bd(&age);
cout<<"salio esto"<<endl;
getch();
break;
case '7':
rbaja(&age);
break;
case '8':
ayuda();
break;
case 's':
op='s';
break;
}
}while(op!='s');
return 0;
}
void ingresar(tagenda *pag)
{
char opc;
char nom[]="c:\\agenda.dot";
// if(abrir(nom))
// {
// cout<<"arch existe"<<endl; // me provoca Error si habilito esas funciones BOOL
// getch();
// }
// else
// {
// if(crear(nom))
// cout<<"arch creado"<<endl;
// }
// else
// cout<<"no se puedo crear"<<endl;
// }
FILE *arch;
if((arch=fopen(nom,"wb"))==NULL)
cout<<"El Archivo no Existe";
else
{
do
{
cout<<endl<<"Ingrese Nombre del Contacto: ";
fflush(stdin);
cin.getline((pag->nom),30);
while(strlen(pag->nom)>10)
{
cout<<endl<<"Reingrese Nombre: ";
fflush(stdin);
cin.getline((pag->nom),30);
}
cout<<endl<<"Ingrese Apellido del Contacto: ";
fflush(stdin);
cin.getline((pag->ape),30);
while(strlen(pag->ape)>10)
{
cout<<endl<<"Reingrese el Apellido: ";
fflush(stdin);
cin.getline((pag->ape),30);
}
cout<<endl<<"Ingrese Direccion del Domicilio del Contacto: ";
fflush(stdin);
cin.getline((pag->dir),30);
while(strlen(pag->dir)>10)
{
cout<<"Reingrese la Direccion: "<<endl;
fflush(stdin);
cin.getline((pag->dir),30);
}
cout<<endl<<"Ingrese el Telefono del Contacto: ";
cin>>pag->tel;
while((pag->tel)>10)
{
cout<<endl<<"Reingrese el Telefono: ";
cin>>pag->tel;
}
cout<<endl<<"Ingrese Direccion Email: ";
fflush(stdin);
cin.getline((pag->eml),30);
while(strlen(pag->eml)>10)
{
cout<<endl<<"Reingrese Direccion Email: ";
fflush(stdin);
cin.getline((pag->eml),30);
}
pag->b=1;
cout<<"Presione la Tecla 's' para Salir o cualquier otra Tecla para Continuar: "<<endl;
fwrite(pag,sizeof(tagenda),1,arch);
opc=getch();
}while(opc!='s');
}
clrscr();
fclose(arch);
}
bool abrir(char *c)
{
FILE *arc;
if((arc=fopen(c,"rb"))==NULL)
{
fclose (arc);
return (false);
}
else
{
fclose (arc);
return (true);
}
}
bool crear(char *c)
{
FILE *arc;
if((arc=fopen(c,"wb"))==NULL)
{
fclose(arc);
return (false);
}
else
{
fclose(arc);
return (true);
}
}
void rbaja(tagenda *pag)
{
clrscr();
char c[30],op;
int ct=0;
cout<<endl<<"Ingrese Nombre del Registro Dado de Baja para Recuperar: ";
fflush(stdin);
cin.getline(c,30);
while(strlen(c)>10)
{
cout<<endl<<"reingrese Nombre del Registro Dado de Baja para Recuperar: ";
fflush(stdin);
cin.getline(c,30);
}
FILE *arch;
if((arch=fopen("c:\\agenda.dot","rb+"))==NULL)
cout<<"El Archivo no Existe";
else
{
clrscr();
while(fread(pag,sizeof(tagenda),1,arch)==1)
{
if(!strcmp(c,pag->nom))
{
cout<<"Registro Encontrado"<<endl;
cout<<pag->nom<<endl;
getch();
cout<<"Esta Seguro en Recuperar el Registro "<<pag->nom<<" Pulse la Tecla S para confirmar Si: "<<endl;
op=getch();
if(op=='s')
{
pag->b=1;
fseek(arch,ftell(arch)-sizeof(tagenda),0);//vuelvo reg anterior
fwrite(pag,sizeof(tagenda),1,arch);
cout<<"Registro Dado de Alta"<<endl;
cout<<pag->nom<<endl;
getch();
fclose(arch);
}
}
else
{
cout<<"No Existe Registro"<<endl;
getch();
}
}
}//else
fclose(arch);
}
void mxem(tagenda *pag)
{
clrscr();
char nm[30],op;
int ct=0;
cout<<endl<<"Ingrese Email del Registro: ";
fflush(stdin);
cin.getline(nm,30);
while(strlen(nm)>10)
{
cout<<endl<<"Reingrese Email del Registro: ";
fflush(stdin);
cin.getline(nm,30);
}
FILE *arc;
if((arc=fopen("c:\\agenda.dot","rb+"))==NULL)
cout<<"El Archivo no Existe";
else
{
fread(pag,sizeof(tagenda),1,arc);
while(!feof(arc))
{
if(pag->b==1)
{
if(!strcmp(nm,pag->eml))
{
ct++;
if(ct==8)
{
cout<<"Para continuar Aprete cualquier Tecla, Presione ESC para salir"<<endl;
ct=0;
fflush(stdin);
op=leerTecla();
if(op==27)
{
break;
}
}
cout<<"Registro Encontrado"<<endl;
cout<<endl<<"Nombre: "<<(pag->nom)<<endl;
cout<<"Apellido: "<<(pag->ape)<<endl;
cout<<"Telefono: "<<(pag->tel)<<endl;
cout<<"Domicilio: "<<(pag->dir)<<endl;
cout<<"Email: "<<(pag->eml)<<endl;
getch();
}
}
fread(pag,sizeof(tagenda),1,arc);
}
}
fclose(arc);
}
void mxape(tagenda *pag)
{
clrscr();
char nm[30],op;
int ct=0;
cout<<endl<<"Ingrese Apellido del Registro: ";
fflush(stdin);
cin.getline(nm,30);
while(strlen(nm)>10)
{
cout<<endl<<"Reingrese Apellido del Registro: ";
fflush(stdin);
cin.getline(nm,30);
}
FILE *arc;
if((arc=fopen("c:\\agenda.dot","rb+"))==NULL)
cout<<"El Archivo no Existe";
else
{
fread(pag,sizeof(tagenda),1,arc);
while(!feof(arc))
{
if(pag->b==1)
{
if(!strcmp(nm,pag->ape))
{
ct++;
if(ct==8)
{
cout<<"Para continuar Aprete cualquier Tecla, Presione ESC para salir"<<endl;
ct=0;
fflush(stdin);
op=leerTecla();
if(op==27)
{
break;
}
}
cout<<"Registro Encontrado"<<endl;
cout<<endl<<"Nombre: "<<(pag->nom)<<endl;
cout<<"Apellido: "<<(pag->ape)<<endl;
cout<<"Telefono: "<<(pag->tel)<<endl;
cout<<"Domicilio: "<<(pag->dir)<<endl;
cout<<"Email: "<<(pag->eml)<<endl;
getch();
}
}
else
cout<<"no existe registro"<<endl;
fread(pag,sizeof(tagenda),1,arc);
}
}
fclose(arc);
}
|