Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2010, 00:58
obdulioybr
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 11 meses
Puntos: 0
Pregunta AYUDA EN VISUAL C++ CON ficheros .TXT

HOLA TENGO QUE ENTREGAR UN PROYECTO FINAL PARA ESTE SABADO 20 DE JUNIO 2010 QUE ME CREE COMO TRES FICHEROS, PERO TENGO MUY POCO TIEMPO SI ALGUEN ME PUEDE AYUDAR TENGO ESTE CODIGO, pero me tira estos errores


C:\Documents and Settings\Administrador\Escritorio\datos\datos\dato s.cpp(22) : error C2146: syntax error : missing ';' before identifier 'n'

C:\Documents and Settings\Administrador\Escritorio\datos\datos\dato s.cpp(22) : fatal error C1004: unexpected end of file found

micodigo es este---- ESTOY TRABAJANDO EN VISUAL C++ 6.0 por favor si alguien me ayudaria se lo agradeceria.............. soy nuevo necesito su ayuda.... gracias





#include "stdafx.h"
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <fstream>

struct datos
{
char nombre[50];
int telefono;
char direccion[50];
char email[50];
int valido;
int valido2; 1706887114
};

int menu()

int n=0;
system("cls");
cout<<endl<<endl;
cout<<" ==========================================="<<endl ;
cout<<" || AGENDA PERSONAL ||"<<endl;
cout<<" ==========================================="<<endl ;
cout<<" || 1. AGREGAR NUEVO REGISTRO ||"<<endl;
cout<<" || 2. BUSCAR REGISTRO ||"<<endl;
cout<<" || 3. MOSTRAR TODOS LOS REGISTROS ||"<<endl;
cout<<" || 4. SALIR ||"<<endl;
cout<<" ==========================================="<<endl <<endl;
while ((n<1) || (n>4))
{ cout<<" Introduce un numero de las opciones listadas arriba [1-4]: "; cin>>n; }
cout<<endl;
return n;
}

void agregar(struct datos d)
{
char na='s';
while (na=='s')
{
char nn='x';
system ("cls");

cout<<"Nombre: "; cin>> d.nombre;
cout<<"Telefono: "; cin>> d.telefono;
cout<<"Direccion: "; cin>> d.direccion;
cout<<"Email: "; cin>> d.email; cout<<endl;
d.valido=1;
d.valido2=1706887114; registros


while ((nn!='s') && (nn!='n'))
{ cout<<endl<<"Deseas agregar el nuevo registro? [s-n]: "; cin>>nn; }

//agregamos
if (nn=='s')
{
ofstream reg("registros.dat", ios::app | ios::binary);

if(!reg) /
{ cout <<"No se puede abrir el fichero."; }
reg.seekp(0, ios::end);
reg.write((char *) &d, sizeof(d));
reg.close(); //cerramos el archivo
cout<<endl<<"Registro agregado exitosamente"<<endl;
system("pause");
}
else
{

strcpy(d.nombre,"");
d.telefono=0;
strcpy(d.direccion,"");
strcpy(d.email,"");
d.valido=0;
d.valido2=0;
cout<<endl<<"El Registro NO fue agregado"<<endl;
system("pause");
}
na='x';
while ((na!='s') && (na!='n'))
{ cout<<endl<<endl<<"Deseas agregar un registro nuevo? [s-n]: "; cin>>na; }
}//endwhile
}

void modificar(struct datos d, int nm)
{
char nnm='x';
system ("cls");

cout<<"Nombre: "; cin>> d.nombre;
cout<<"Telefono: "; cin>> d.telefono;
cout<<"Direccion: "; cin>> d.direccion;
cout<<"Email: "; cin>> d.email; cout<<endl;
d.valido=1; //decimos ke si existe
d.valido2=1706887114;


while ((nnm!='s') && (nnm!='n'))
{ cout<<endl<<"Deseas modificar este registro? [s-n]: "; cin>>nnm; }

//agregamos
if (nnm=='s')
{
ofstream reg("registros.dat", ios::out | ios::binary); /

if(!reg) //si no se pudo abrir el archivo
{ cout <<"No se puede abrir el fichero."; }
reg.seekp((nm-1)*sizeof(d));

reg.write((char *) &d, sizeof(d));
reg.close(); //cerramos el archivo
cout<<endl<<"Registro modificado exitosamente"<<endl;
}
else
{

strcpy(d.nombre,"");
d.telefono=0;
strcpy(d.direccion,"");
strcpy(d.email,"");
d.valido=1;
d.valido2=0;
cout<<endl<<"El Registro NO fue modificado"<<endl;
}
system("pause");
}

void eliminar(struct datos d, int ne)
{
system ("cls"); //borramos pantalla
d.valido=0; //modificamos "valid0" del struct para decir ke ese registro no sera tomado en cuenta
d.valido2=1706887114; //agregamos nuestra garantia de registro

//ahora actualizamos el registro
ofstream reg("registros.dat", ios::out | ios::binary); //activamos el archivo en modo de escritura (creamos el objeto 'reg')
if(!reg) //si no se pudo abrir el archivo
{ cout <<"No se puede abrir el fichero."<<endl; system("pause");}
reg.seekp((ne-1)*sizeof(d)); //colocamos el apuntador en la posicion inicial del registro a modificar
reg.write((char *) &d, sizeof(d)); //escribimos el nuevo registro
reg.close(); //cerramos el archivo
cout<<endl<<"Registro eliminado"<<endl;
system("pause");
}

void buscar(struct datos d)
{
int nb1=0, nb=-2; //nb1=variable auxiliar para saber si kiere volver a buskar o salir nb=variable ke guarda el #de registro buskado
while (nb1<4)
{
if (nb1==2)
{ modificar(d, nb); }
else
{
if (nb1==3)
{ eliminar(d, nb); }
}
system("cls"); //borramos pantalla
int nb=-2;
while (nb<0)
{ cout<<"Introduce el registro a buscar [0 para salir]: "; cin>>nb; }
if (nb!=0) //si kiere buskar...
{
ifstream reg("registros.dat", ios::in | ios::binary); //activa el archivo en modo de lectura (creamos el objeto 'reg')
reg.seekg((nb-1)*sizeof(d)); //colocamos el apuntador en la posicion inicial del registro encontrado
reg.read((char *) &d, sizeof d); //leemos el registro encontrado
//verificamos que el registro es correcto
if ((d.valido==1) && (d.valido2==1706887114))
{
cout<<endl<<endl<<"--------Registro encontrado--------"<<endl;
cout<<"Nombre: "<<d.nombre<<endl<<"Telefono: "<<d.telefono<<endl<<"Direccion: "<<d.direccion<<endl<<"Email: "<<d.email<<endl<<endl;
cout<<endl; //imprimimos menu de opciones
cout<<" ================================"<<endl;
cout<<" || OPCIONES ||"<<endl;
cout<<" ================================"<<endl;
cout<<" || 1. NUEVA BUSQUEDA ||"<<endl;
cout<<" || 2. MODIFICAR REGISTRO ||"<<endl;
cout<<" || 3. ELIMINAR REGISTRO ||"<<endl;
cout<<" || 4. SALIR ||"<<endl;
cout<<" ================================"<<endl<<endl;
nb1=0;
while ((nb1<1) || (nb1>4))
{ cout<<" Introduce un numero de las opciones listadas arriba [1-4]: "; cin>>nb1; }
cout<<endl;
}//endif ((d.valido==1) && (d.valido2==1706887114))
else //si el registro encontrado no es correcto
{
cout<<endl<<"El registro buscado no existe"<<endl;
system("pause");
nb1=1;
}
}//endif (nb!=0)
else //si ya se kiere salir
{ nb1=4; } //igualamos la bandera a 4 para ke se salga
} //endwhile
}

void mostrar(struct datos d)
{
int nb11=0,con=0,nme=0,bandera=0; //nb1=variable auxiliar para saber si kiere volver a buskar o salir nb=variable ke guarda el #de registro buskado
while (nb11<3)
{
if (nb11==1)
{ modificar(d, nme); }
else
{
if (nb11==2)
{ eliminar(d, nme); }
}
system("cls");
ifstream reg("registros.dat", ios::in | ios::binary); /
con=0;
bandera=0;
while (reg && !reg.eof())
{
reg.seekg((con)*sizeof(d));
reg.read((char *) &d, sizeof d);
con++;
//verificamos que el registro es correcto
if ((d.valido==1) && (d.valido2==1706887114))
{
bandera=1;
cout<<endl<<"--------Registro "<<con<<"--------"<<endl;
cout<<"Nombre: "<<d.nombre<<endl<<"Telefono: "<<d.telefono<<endl<<"Direccion: "<<d.direccion<<endl<<"Email: "<<d.email<<endl<<endl;
}//endif
}//endwhile
if (bandera==1)
{
cout<<endl<<endl;
cout<<" ================================"<<endl;
cout<<" || OPCIONES ||"<<endl;
cout<<" ================================"<<endl;
cout<<" || 1. MODIFICAR REGISTRO ||"<<endl;
cout<<" || 2. ELIMINAR REGISTRO ||"<<endl;
cout<<" || 3. SALIR ||"<<endl;
cout<<" ================================"<<endl<<endl;
nb11=0;
//preguntamos por ke opcion kiere realizar
while ((nb11<1) || (nb11>3))
{ cout<<" Introduce un numero de las opciones listadas arriba [1-4]: "; cin>>nb11; }
nme=0;
while ((nme<1) && (nb11<3))
{ cout<<" Introduce el numero del registro: "; cin>>nme; }
}//endif bandera=1
else
{ cout<<"No existen registros!"<<endl; system("pause"); nb11=3;}
} //endwhile
}

int main()
{
struct datos d;
int x=0;
fstream ("registros.dat", ios::out | ios::in | ios::binary);
int n=0,band=0;
while (band==0)
{
n=menu();
switch (n)
{
case 1: agregar(d); break;
case 2: buscar(d); break;
case 3: mostrar(d); break;
case 4: band=1; break;
}
}
system("PAUSE");
return 0;
}