De Wiki EELL.
/*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;
}