CmapGpsu/main.cpp

De Wiki EELL.

Version du 18 décembre 2010 à 17:00 par JPL (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
/*O
 NOM DU FICHIER: Main.c
 PROJET INITIAL: CmapGpsu Convertisseur de route CmapECS vers GPSUtility
 DOSSIER: CmapGpsu
 PROGRAMMEUR: 
 DATE: 20 fevrier 2004
 MODIFICATIONS:
 le: 29/01/2010 par ... 
 	objet de la modification: Compil pour Win32 Console UNICODE Windows 7
 le: ../../.. par

*/

/*D
        main
 -----------------------------------------------------------------------------
 ACTION:
        Fonction d'entrée pour SHELL MS-DOS. A ouvrir avec la commande cmd.exe
        Vérifie qu'un fichier est entre en paramètre et qu'il est accessible
        en lecture.
        Vérifie qu'un deuxième fichier est entré en paramètre, et s'il est
        accessible en lecture, demande s'il faut l'écraser. Noter que cette
        deuxième fonction n'est pas prise en compte dans le programme en
        version d'origine 1.00
        Le programme peut être compilé en commentaires FR (française) ou, par
	défaut en commentaires EN (anglaise).

 SYNTAXE:
        #include <CmapGpsu.h>
        extern int main(int argc, char *argv[]);

 PORTABILITE:
        x86 Win32_Console UNICODE

 DESCRIPTION:
        int: nombre de paramètres de la ligne de commande
	*argv[]: pointeur sur les arguments de la ligne de commande

 VALEUR RETOURNEE:
        Quitte le programme CmapGpsu et renvoie la valeur -1 au programme
        d'appel en cas d'erreur de parametrage. 0 en cas de succès.

 VOIR AUSSI: (anciens fichiers Win16)
        Les fichier: !.c pour la génération du fichier CmapGpsu.h par l'exécutable
        MakeHead (Nécessite de disposer de l'exécutable make). Sinon intervenir avec
        un éditeur sur le fichier CmapGpsu.h

*/

/*H  // Main.c:
     extern int main(int argc, char *argv[]);
*/

// #define TESTS_U
#ifdef TESTS_U
	#include "..\..\include\CmapGpsu.h"
	#define EN
	#define FR
#endif
#ifndef TESTS_U
	#include "..\include\CmapGpsu.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <conio.h>

/*O Programme shell (sous MSDOS ou UNIX) */
     int main(int argc, char *argv[])
     {
        //int TRUE = 1;
        //int FALSE = 0;
#define TRUE 1;
#define FALSE 0;
        int reponse = TRUE;
        extern int errno;

/*O    Préciser l'action du convertisseur */
#ifdef FR
        printf("\nConvertisseur de route CmapEcs vers GPS-Utility\n\n");
#endif

#ifdef EN
        printf("\nCmapEcs route to GPS-Utility\n\n");
#endif
      
/*O    Si la syntaxe n'est pas correcte: "Executable Source_CmapRoute" */
        if (argc < 2) 

/*O    Alors Préciser la syntaxe et quitter sur erreur.*/
        {
#ifdef FR
           printf("Syntaxe: %s Route(cmap)\n",argv[0]);
           printf("Appuyer sur la touche 'Retour Chariot' pour quitter.\n");
#endif
#ifdef EN
           printf("Syntax: %s Route(cmap)\n",argv[0]);
           printf("Press 'Enter' to quit.\n");
#endif
           getc(stdin);
           exit(-1);
        }

/*O    Si le fichier source n'existe pas Alors le préciser et quitter sur erreur.*/
        if (argv[1]==NULL || _access(argv[1],04)!=0) // N'existe pas ou n'est pas accessible en lecture 
        {
#ifdef FR
           printf("Le fichier source \"%s\" n'existe pas, verifiez le chemin.\n",argv[1]);
           printf("Appuyer sur la touche 'Retour Chariot' pour quitter.\n");
#endif
#ifdef EN
           printf("Source file \"%s\" does not exist, please verify the path.\n",argv[1]);
           printf("Press 'Enter' to quit.\n");
#endif
           getc(stdin);
           exit(-1);
        }

/*O    Si le fichier texte Dest existe Alors demander si il faut l'ecraser ? */
        if (argv[2]!=NULL && _access(argv[2],02)==0) // Existe et est accessible en ecriture
        {
           char clavier;
           //reponse = 1;
#ifdef FR
           printf("Le fichier %s a ete trouve, faut-il l'ecraser ? (o=oui) :", argv[2]);
#endif
#ifdef EN
           printf("File %s is found, update this file ? (y=yes)", argv[2]);
#endif
           clavier = getc(stdin);
           if (clavier=='o' || clavier=='O' || clavier=='y' || clavier=='Y') 
           {
              reponse = TRUE;
              printf("\n");
           }
           else reponse = FALSE;
        }
        
/*O    Si la reponse est non, Alors quitter sur arrêt utilisateur ! */
        if (! reponse) exit(0);

/*O    Sinon executer le programme */
        else
        {
#ifndef TESTS_U
           CmapGpsu(argc, argv);
	#ifdef FR
           printf("Sortie normale ... OK, appuyer sur 'Retour Chariot' pour quitter.");
	#endif
	#ifdef EN
           printf("Normal Exit ... OK, press 'Enter' to exit.");
	#endif
#endif

#ifdef TESTS_U
	#ifdef FR
           printf("Sortie normale, tous fichiers accessibles.\nAppuyer sur une touche pour quitter.\n");
	#endif
	#ifdef EN
		   printf("Normal exit, all files found.\nPress 'Enter' to exit\n");
	#endif
#endif
           getc(stdin);
        }
        return 0;
     }
Outils personnels