Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int apareo(const char* nombre_A,const char* nombre_B,const char* nombre_C)
- /**Apareo entre dos archivos ordenados por su dni**/
- {
- tPersona aux_A;
- tPersona aux_B;
- FILE* Archivo_A=fopen(nombre_A,"rb");
- FILE* Archivo_B=fopen(nombre_B,"rb");
- FILE* Archivo_C=fopen(nombre_C,"wb");
- if(!Archivo_A)
- {
- printf("No se pudo abrir el archivo\n");
- return -1;
- }
- if(!Archivo_B)
- {
- if(Archivo_A)
- {
- fclose(Archivo_A);
- }
- printf("No se pudo abrir el archivo\n");
- return -1;
- }
- if(!Archivo_C)
- {
- if(Archivo_A)
- {
- fclose(Archivo_A);
- }
- if(Archivo_B)
- {
- fclose(Archivo_B);
- }
- printf("No se pudo abrir el archivo\n");
- return -1;
- }
- fread(&aux_A,sizeof(tPersona),1,Archivo_A);
- fread(&aux_B,sizeof(tPersona),1,Archivo_B);
- while(!feof(Archivo_A)&&!feof(Archivo_B))
- {
- if(aux_A.dni<aux_B.dni)
- {
- fwrite(&aux_A,sizeof(tPersona),1,Archivo_C);
- fread(&aux_A,sizeof(tPersona),1,Archivo_A);
- }
- else if(aux_A.dni>aux_B.dni)
- {
- fwrite(&aux_B,sizeof(tPersona),1,Archivo_C);
- fread(&aux_B,sizeof(tPersona),1,Archivo_B);
- }
- else
- {
- fwrite(&aux_A,sizeof(tPersona),1,Archivo_C);
- fwrite(&aux_B,sizeof(tPersona),1,Archivo_C);
- fread(&aux_A,sizeof(tPersona),1,Archivo_A);
- fread(&aux_B,sizeof(tPersona),1,Archivo_B);
- }
- }
- while(!feof(Archivo_A))
- {
- fwrite(&aux_A,sizeof(tPersona),1,Archivo_C);
- fread(&aux_A,sizeof(tPersona),1,Archivo_A);
- }
- while(!feof(Archivo_B))
- {
- fwrite(&aux_B,sizeof(tPersona),1,Archivo_C);
- fread(&aux_B,sizeof(tPersona),1,Archivo_B);
- }
- fclose(Archivo_A);
- fclose(Archivo_B);
- fclose(Archivo_C);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement