All pastes #825455 Raw Edit

Untitled

public text v1 · immutable
#825455 ·published 2007-12-20 16:09 UTC
rendered paste body
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;
   }