Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/04/2009, 09:25
boli-sp
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: declaración de argv y argc

gracias de nuevo por contestar.

este es el código:
Código:
#include "persona.hh"
#include "lista.hh"

bool errorComando(void);
bool errorSintaxis(void);
bool errorFichero(void);
bool tratamientoErrores(void);

int main(int argc, char **argv)
{ 
  if(tratamientoErrores()==false)
    {
     //código
    }
 
  return 0;
} 



bool errorComando(void)

{
  bool error=false;

  if(argc>=1)
    {
      if (argv[1]!="-nuevaPersona" || argv[1]!="-defuncion" || argv[1]!="-invertir" || argv[1]!="-baja")
	error=true;
    }
  else
    error=true;
  
  return error ;
}

bool errorSintaxis(void)
{
  bool error=false; 
  int longitud, i;
    
  if(argv[1]=="-nuevaPersona")
    {
      if(argc==5 || argc==7)
	{ 
	  int NPargv5=atoi(argv[5]);
	  longitud=strlen(argv[3]);
	  
	  if(argv[2]!="-n" || longitud>50)
	    error=true;

	  if(argv[4]!="-a" || NPargv5>9999 || NPargv5<1)
	    error=true;

	  if(argc==7)
	    {
	      longitud=strlen(argv[7]);
	      if(longitud>9)//hai que comprobar se son todo numeros
		error=true;
	      else
		{
		  longitud=strlen(argv[7]);
		  for(i=0; i<longitud; i++)
		    {
		      if(isdigit(argv[7][i])==0)
			error=true;
		    }   
		}   
	    }
	}
      else
	error=true;
    }

  if(argv[1]=="-defuncion")
    {
      if(argc==5)
	{
	  int Dargv3=atoi(argv[3]);
	  int Dargv5=atoi(argv[5]);

	  if(argv[2]!="-i" || Dargv3>9999 || Dargv3<1)
	    error=true;

	  if(argv[4]!="-a" || Dargv5>9999 || Dargv5<1)
	    error=true;
	}
      else
	error=true;
    }

  if(argv[1]=="-invertir")
    {
      if(argc!=1)
	error=true;
    }

  if(argv[1]=="-baja")
    {
      if(argc==5)
	{
	  int Bargv5=atoi(argv[5]);

	  longitud=strlen(argv[3]);
	  if(argv[2]!="-n" || longitud>50)
	    error=true;

	  if(argv[4]!="-a" || Bargv5<1 || Bargv5>9999)
	    error=true;
	}
      else
	if(argc==3)
	  {
	    int Bargv3=atoi(argv[3]);
	    if(argv[2]!="-i" || Bargv3<1 || Bargv3>9999)
	      error=true;
	  }
	else
	  error=true;
    }
  return error;
}

bool errorFichero(void)
{
  bool error=false;
  ifstream fichero;
  fichero.open("datos.txt");

  if(fichero.fail())
    error=true;

  fichero.close();
  return error;
}

bool tratamientoErrores(void)
{
  bool error;
  error=errorComando();

  if(error==false)
    error=errorSintaxis();
  if(error==false)
    error=errorFichero();

  return error;
}
solo pongo el main.cc que es donde se encuentra el programa principal.

espero una respuesta. gracias!

PD: como etiquetas el código C?

Última edición por boli-sp; 20/04/2009 a las 10:22