InicioPag: clrscr();
printf("\nIngrese la cantidad deseada de paginas: "); //Se abre el archivo TERMINALES.DAT solo para control de
scanf("%d", &np); //errores al ingresar las páginas.
fterm = fopen("Terminales.dat","r");
fseek(fterm,20,1);
fscanf(fterm,"%d",&num_term);
if(np>0)
{
f=fopen("Paginas.dat","w");
fprintf(f,"Numero de Paginas: %d",np);
fprintf(f,"\n\nNº Pag\tR Orig\tR Dest\tTam Pag\tMensaje");
for(q=1;q<=np;q++) //Este FOR sirve para contabilizar todas las paginas
{ //creadas y por lo tanto, los mensajes enviados
SetMensaje: printf("\nMensaje N %d: ",q);
printf("\n\nIngrese el router origen: ");
scanf ("%d",&r_origen);
printf("\nIngrese el router destino: ");
scanf ("%d",&r_destino);
if((r_origen-1>nr)||(r_destino-1>nr)) //Esto es por si ingresamos mal algun router de origen o destino
{
clrscr();
cout<<"ERROR: El router de origen o de destino esta mal ingresado";
getch();
clrscr();
goto SetMensaje;
}
for(s=0;s<num_term;s++) //Aca se controla si los routers que ingrese como
{ //emisores/receptores pueden efectivamente ser tales
fseek(fterm,1,1);
fscanf(fterm,"%d",&term);
if(r_origen==term)
oflag='b';
if(r_destino==term)
dflag='b';
}
if(oflag=='a'||dflag=='a') //Este If es parte de la verificacion de
{ //routers terminales del FOR anterior
cout<<"\n\nERROR: Solo pueden enviarse paginas entre routers terminales";
getch();
clrscr();
oflag='a';
dflag='a';
fclose(fterm);
fterm=fopen("Terminales.dat","r");
fseek(fterm,20,1);
fscanf(fterm,"%d",&num_term);
goto SetMensaje;
}
printf("\nIngrese el mensaje: ");
//cin>>buffer;
//pagina = cgets(buffer);
//strcpy(buffer,pagina);
gets(buffer);
printf("\n\n");
/* if(*pagina == '\n')
{
clrscr();
printf("\nADVERTENCIA: La pagina anterior no tiene contenido");
getch();
}
else
{*/
fprintf(f,"\n%d\t\t",q);
fprintf(f,"%d\t\t",r_origen);
fprintf(f,"%d\t\t",r_destino);
tam_pagina = (strlen(buffer));
fprintf(f,"%d\t\t",tam_pagina);
fprintf(f,"%s",buffer);
//}
oflag=dflag='a';
fclose(fterm);
fterm=fopen("terminales.dat","r");
fseek(fterm,20,1);
fscanf(fterm,"%d",&num_term);
fflush(stdin);
}
fclose(f);
}
else
{
cout<<"\n\n***********************************************\n* El numero de paginas debe ser mayor a cero! *\n***********************************************";
getch();
goto InicioPag;
}