Backup proyecto Joyfe - Borland
This commit is contained in:
161
CPP/ACTU.CPP
Normal file
161
CPP/ACTU.CPP
Normal file
@ -0,0 +1,161 @@
|
||||
#include <conio.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
FILE *maes, *mov, *maestmp, *historico;
|
||||
struct clientes{
|
||||
char nombre[11], apellidos[21], direccion[21], telefono[11];
|
||||
int codigo;
|
||||
};
|
||||
struct maestro {
|
||||
int codigo;
|
||||
char nombre[11], apellidos[21];
|
||||
char direccion[21], telefono[11];
|
||||
}regmaes;
|
||||
struct movi {
|
||||
char tipo;
|
||||
int codigo;
|
||||
char nombre[10], apellidos[20];
|
||||
char direccion[20], telefono[10];
|
||||
}regmov;
|
||||
|
||||
void limpiar1(), limpiar2();
|
||||
|
||||
void main(void){
|
||||
struct clientes cli;
|
||||
mov=fopen("k:\\files\\clientes.mov","r+b");
|
||||
if ((maes=fopen("k:\\files\\clientes.dat","r+b"))==NULL){
|
||||
//fclose(maes);
|
||||
maes=fopen("k:\\files\\clientes.dat","w+b");
|
||||
while (!feof(mov)){
|
||||
limpiar1();limpiar2();
|
||||
fread(®mov,sizeof(regmov),1,mov);
|
||||
if (regmov.tipo=='A') {
|
||||
strcpy (regmaes.apellidos,regmov.apellidos);
|
||||
strcpy (regmaes.nombre,regmov.nombre);
|
||||
regmaes.codigo=regmov.codigo;
|
||||
strcpy (regmaes.direccion,regmov.direccion);
|
||||
strcpy (regmaes.telefono,regmov.telefono);
|
||||
clrscr();
|
||||
printf ("%d \n%s \n%s \n%s \n%s", regmaes.codigo, regmaes.nombre,regmaes.apellidos, regmaes.direccion, regmaes.telefono);
|
||||
getch();
|
||||
fwrite (®maes,sizeof(struct maestro),1,maes);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
fclose(maes);
|
||||
system("rename k:\\files\\clientes.dat clientes.tmp");
|
||||
maes=fopen("k:\\files\\clientes.dat","w+b");
|
||||
maestmp=fopen("k:\\files\\clientes.tmp","rb");
|
||||
historico=fopen("k:\\files\\clientes.log","a+b");
|
||||
limpiar1();limpiar2();
|
||||
fread(®mov,sizeof(regmov),1,mov);
|
||||
fread(®maes,sizeof(regmaes),1,maestmp);
|
||||
while (!feof(mov) && !feof(maestmp)){
|
||||
if (regmaes.codigo==regmov.codigo){
|
||||
if(regmov.tipo=='A'){
|
||||
printf("Error cliente duplicado.");getch();
|
||||
fwrite(®maes,sizeof(regmaes),1,maes);
|
||||
limpiar1();limpiar2();
|
||||
fread(®mov,sizeof(regmov),1,mov);
|
||||
fread(®maes,sizeof(regmaes),1,maestmp);
|
||||
}
|
||||
else{
|
||||
if (regmov.tipo=='B'){
|
||||
printf("Dando de baja...");
|
||||
fwrite(®maes,sizeof(regmaes),1,historico);
|
||||
limpiar1();limpiar2();
|
||||
fread(®mov,sizeof(regmov),1,mov);
|
||||
fread(®maes,sizeof(regmaes),1,maestmp);
|
||||
}
|
||||
else{
|
||||
fwrite(&(regmov.codigo),2,1,maes);
|
||||
fwrite(&(regmov.nombre),11,1,maes);
|
||||
fwrite(&(regmov.apellidos),21,1,maes);
|
||||
fwrite(&(regmov.direccion),21,1,maes);
|
||||
fwrite(&(regmov.telefono),11,1,maes);
|
||||
limpiar1();limpiar2();
|
||||
fread(®mov,sizeof(regmov),1,mov);
|
||||
fread(®maes,sizeof(regmaes),1,maestmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(regmov.codigo>regmaes.codigo){
|
||||
fwrite(®maes,sizeof(regmaes),1,maes);
|
||||
limpiar2();
|
||||
fread(®maes,sizeof(regmaes),1,maestmp);
|
||||
}
|
||||
else{
|
||||
if (regmov.tipo=='A'){
|
||||
fwrite(&(regmov.codigo),2,1,maes);
|
||||
fwrite(&(regmov.nombre),10,1,maes);
|
||||
fwrite(&(regmov.apellidos),20,1,maes);
|
||||
fwrite(&(regmov.direccion),20,1,maes);
|
||||
fwrite(&(regmov.telefono),10,1,maes);
|
||||
}
|
||||
else{
|
||||
printf("Error: El cliente no existe.");getch();
|
||||
}
|
||||
limpiar1();
|
||||
fread(®mov,sizeof(regmov),1,mov);
|
||||
}
|
||||
}
|
||||
} // fin del while
|
||||
|
||||
|
||||
if (!feof(mov)){
|
||||
while(!feof(mov)){
|
||||
if(regmov.tipo=='A'){
|
||||
strcpy (regmaes.apellidos,regmov.apellidos);
|
||||
strcpy (regmaes.nombre,regmov.nombre);
|
||||
regmaes.codigo=regmov.codigo;
|
||||
strcpy (regmaes.direccion,regmov.direccion);
|
||||
strcpy (regmaes.telefono,regmov.telefono);
|
||||
clrscr();
|
||||
printf ("%d \n%s \n%s \n%s \n%s", regmaes.codigo, regmaes.nombre,regmaes.apellidos, regmaes.direccion, regmaes.telefono);
|
||||
getch();
|
||||
fwrite (®maes,sizeof(struct maestro),1,maes);
|
||||
}
|
||||
else{
|
||||
printf("Error: El cliente no existe.");getch();
|
||||
}
|
||||
limpiar1();
|
||||
fread(®mov,sizeof(regmov),1,mov);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(!feof(maestmp)){
|
||||
while(!feof(maestmp)){
|
||||
fwrite(®maes,sizeof(regmaes),1,maes);
|
||||
limpiar2();
|
||||
fread(®maes,sizeof(regmaes),1,maestmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
fcloseall();
|
||||
}
|
||||
unlink("k:\\files\\clientes.mov");
|
||||
unlink("k:\\files\\clientes.tmp");
|
||||
}
|
||||
|
||||
void limpiar1(){
|
||||
regmov.tipo=NULL;regmov.codigo=0;
|
||||
for (int n=0;n<21;n++){
|
||||
regmov.apellidos[n]=NULL;regmov.direccion[n]=NULL;
|
||||
}
|
||||
for(n=0;n<11;n++){
|
||||
regmov.nombre[n]=NULL;regmov.telefono[n]=NULL;
|
||||
}
|
||||
}
|
||||
void limpiar2(){
|
||||
for (int n=0;n<21;n++){
|
||||
regmaes.apellidos[n]=NULL;regmaes.direccion[n]=NULL;
|
||||
}
|
||||
for (n=0;n<11;n++){
|
||||
regmaes.nombre[n]=NULL;regmaes.telefono[n]=NULL;
|
||||
}
|
||||
regmaes.codigo=0;
|
||||
}
|
||||
Reference in New Issue
Block a user