Aller au contenu

Utilisateur:Goelette Cardabela/mkd-getwikifiles/Version imprimable

Un livre de Wikilivres.
JPL     

mkd-getwikifiles
Programme de tests du module mkd-getwikifiles.c

 

 

 

Lisezmoi.txt
Fichier d'information à lire en premier
Cette page est en cours de première d'écriture.
...


Entête standard

[modifier | modifier le wikicode]

Voir : Utilisateur:Goelette_Cardabela/mkdcpp#

Entête pour pour compiler avec minGW et linux.

[modifier | modifier le wikicode]
// define VERSION line 173

//#define UNIX 		/*O UNIX version */ /* Delete this line for PC version */
//#define GTKMM		/*O Version fenêtrée avec gtkmm pour mkdcppw uniquement */
//#define GETTEXT   //O Used only with gettext

#ifndef UNIX            /*H*/
#define PC              /*O version de compilation PC   */  /*H*/
//#define PC_ONLY         /*H find_ ne reconnaît pas: .s .f .p .sh .csh  */
#define NL "\r\n"       /*H*/
//#define VC10            /*O Microsoft Visual C 10.- */
#define MSDEV41         /*O Microsoft 2004 */
#define MinGW           /*O Mingw environment for Windows */
#endif                  /*H*/
//H
#ifdef UNIX             /*H*/
//#define UNIX_ONLY       /*H find_ ne reconnaît pas: .BAS .PAS .FOR ... */
#endif                  /*H*/
//H

//H #D **************************************************************************
//H *** #Define OPTIONS DE COMPILATION:  options par défaut, redéfinissables: ***
 //H(#D pour extraction des options de compilation ligne avec l'option CD3='#') *
//H****************** #Define 'l' (ligne) commence par #define en 1ère colonne :*
#define CD1 '%'   //H #Define Option CD1 en 1ère colonne  prend fin avec NL     * 
#define CD2 '<'   //H #Define Option CD2 en 1ère colonne  prend fin avec NL     *
#define CD3 '!'   //H #Define Option CD3 dans la ligne    prend fin avec NL     *  
                  //H #Define Option '!' commentaire Fortran 90 et ultérieurs   * 
                  //H #Define Option '%' commentaire postcript                  * 
                  //H #Define Option '#' commentaire shell ou pour Makefile     *  
                  //H voir option S ( le commentaire se termine avec new_line ) *
                  //H #Define Option '\'' commentaires Basic                    *
                  //H #Define Option ';'  commentaires assembleur               * 
//H ************** #Define Option 'p' (dans la page) #define en 1ère colonne : **
#define CD4 '\"'  //H #Define Option CD4 = "  debut de commentaire              *
#define CD5 '\"'  //H #Define Option CD5 = "  fin de commentaire                *
                  //H #Define ***************************************************
#define FULL_LINE //H #Define Option de compil. copier toute la ligne           *
//H #D **************************************************************************
//H
#define VERSION "130530"	/*H*/
//H
#define MAX     85		/*H longueur des buffers des path source et doc */
#define STX     0x2		/*H Start Text */
#include <stdio.h>		/*H*/
//H
#ifdef PC            /*H*/
// #include <conio.h>   /*H*/ // inconnu dans MinGW
#include <process.h> /*H*/
#include <io.h>      /*H*/
#endif               /*H*/
#ifdef VC10          /*H Microsoft Visual C 10.- */
	#define putch putchar // _putch    /*H ISO C++ */
	#define getch getchar // _getch    /*H ISO C++ */
	#define access _access  /*H ISO C++ */
#endif                      /*H*/
//H
#ifdef MSDEV41           /*H Valider aussi pour minGW et linux. */
	//#define STD_C       /*H SVr4, 4.3BSD, C89, C99.*/
	#include <string.h>  /*H*/
#endif                   /*H*/
//H
#ifdef  MinGW            //H
	#define exit return  //H
	#define bool int     //H
	//#define STD_C      /*H SVr4, 4.3BSD, C89, C99.*/
	#define getch() getchar() //H defined in mkd.c
	#define putch putchar /*H*/
	#include <strings.h> //H
#endif                   //H
//H
#ifdef UNIX              /*H*/
	#define NL "\n"      /*H*/
	#define exit return  //H
	#define bool int     //H
	//#define STD_C      /*H SVr4, 4.3BSD, C89, C99.*/
	//#define getch() getchar() //H defined in mkd.c
	#define putch putchar /*H*/
#include <signal.h>       /*H*/
#include <sys/file.h>     /*H*/
#include <string.h>       /*H*/
#endif                    /*H*/

getwikifiles.h

[modifier | modifier le wikicode]

Entête de la fonction getwikifiles().

//	getwikifiles.c :
	extern int getwikifiles_ (FILE *pfdoc, FILE *pnfile);

getwikifiles.c

[modifier | modifier le wikicode]

Code C, de traitement des fichiers issus de pages wiki.

/*H  
	// getwikifiles.h
	extern int getwikifiles_ (FILE *pfdoc, FILE *pnfile);
*/

#include "version.h"
#include "getwikifiles.h"

	int getwikifiles_ (FILE* pfdoc, FILE* pnfile)
	{ /*S getwikifiles_ */
	//www rappels : les options booleennes à définir dans main() ou winmain()
		extern unsigned char n,s,t;  			
		extern char codes[];
		unsigned int i,tab;
		unsigned num = 0;
		long ll,nl;
		int c1 = STX; /* STX : Start Text */
		int c2 = STX;
		int c3 = STX;
/*O		tant que l'on n'arrive pas à la fin du fichier source */
        while ( c1 != EOF && c2 != EOF && c3 != EOF )
        { /*S tq !EOF */
			/*bool*/ char ligne = 0;	 /*www bool else : char for MSDEV */
/*O			si on est en début de texte faire c1=LF */
			if (c1==STX) c1='\n';
/*O			sinon prendre pour c1 le caractère pointé */
			else c1=getc(pnfile);
/*O			si le caractère est 'NL' repérer la position qui suit NL, dans nl */
			if(c1=='\n')
			{ /*S*/
				nl=ftell(pnfile);
				tab=0;
				num++;
			} /*S*/
			else
			{ /*S !NL */
/*O				si le char est la tabulation '\t' incrementer tab */
				if (c1=='\t')tab++;
/*O				sinon si le char est '[' */
				else if(c1=='[')
/*O				alors: */
				{ /*S char = '[' */
					c2=getc(pnfile);
					c3=getc(pnfile);
/*O					si suivi par c2 = '[' et si codes[0]=0 ou si suivi par char code utilisateur */
					if( (c2=='[') && (!codes[0]||
						c3 == codes[0] ||
						c3 == codes[1] ||
						c3 == codes[2] ||
						c3 == codes[3] ||
						c3 == codes[4]
						)
					)
/*O					alors: */
					{ /*S traiter le texte */
/*O						si c2 = '[' positionner le booléen ligne à vrai (=1) */
						if(c2=='[') ligne=1; // ligne=1; pour recopier jusqu'en fin de ligne.
/*O						repérer la position du repère '[' */
						//Pw Apparition de codes dans les lignes si les codes[] sont à 0
						//if(!codes[0])ungetc(c3,pnfile); //Pw dépend de la déclaration de codes[]
						ungetc(c3,pnfile); //Pw dépend de la déclaration de codes[]
						ll=ftell(pnfile);
/*O						si l'option n est validée insérer le numéro de ligne */
						if(n)
						{ /*S*/
							fprintf( pfdoc, "%5d ", num );
							if(s) printf( "%5d ", num );   // s = copy to screen
						} /*S*/
/*O						si l'option t n'est pas validée (t=text only)*/
						if(!t)
						{ /*S!t*/
/*O							se positionner en dédut de ligne */
							fseek(pnfile,nl,0);
							/*w ou: fseek(pnfile,(nl-ftell(pnfile)),1); */
/*O							copier la ligne jusqu'au commentaire, dans le fichier doc */
							for(i=(int)(ll-nl);i>0;i--)
							{ /*S*/
								c1=getc(pnfile);
								putc(c1,pfdoc);
								if(s)putch(c1);
							} /*S*/
						} /*S!t*/
/*O						sinon: (option t) */
						else
						{ /*St*/
/*O							copier des tab autant qu'il y en a dans le source */
							for(i=0;i<tab;i++)
							{ /*S*/
								//putc('\t',pfdoc);
								//if(s)putch('\t');
							} /*S*/
/*O							copier des blancs jusqu'à la position commentaire */
							for(i=(int)(ll-nl-tab);i>0;i--)	
							{ /*S*/
								//putc(' ',pfdoc);
								//if(s)putch(' ');
							} /*S*/
							fputs("https://fr.wikibooks.org/wiki/",pfdoc);
						} /*St*/
/*O						puis si booléen ligne est vrai (=1) */
						if(ligne)
/*O						alors : copier le commentaire jusqu'à '|' ou fin de ligne ou End Of File (EOF) */
						{ /*Sligne*/
							while ( (c1=getc(pnfile)) != '|' && c1 != '\n' && c1 !=EOF)
							{ /*S copier commentaire */
								putc(c1,pfdoc);
								if(s)putch(c1);
							} /*S copier commentaire */
							ungetc(c1,pnfile); /* pour la recopie fin de ligne */
						} /*Sligne*/
/*O						sinon : tq ne rencontre pas ] suivi de ], copier le texte */
						else
						{ /*Selse*/
							while ( !(c1==']' && c2==']') )
							{ /*Sw*/
								if( (c1=getc(pnfile)) != ']')
								{ /*S*/
/*www								if(c1=='\n') fprintf(pfdoc, "%s", NL );*/ /*P CR/LF sous DOS */
/*www								else */
									if (c1!='\n') putc(c1,pfdoc);
									if(s) putch(c1);
/*O									//w si option n et char=NL insérer le numéro de la ligne qui suit NL */
									if( n && c1=='\n' )
									{ /*S*/
										num++;
										fprintf( pfdoc,"%5d ", num );
										if(s) printf("%5d ", num );
									} /*S*/
								} /*S*/
								else /*P (c1=']' vérifier c2) */
								{ /*S*/
									if((c2=getc(pnfile))==']')
									{ /*S*/
										ungetc(c2,pnfile);
										ungetc(c1,pnfile); /* pour la recopie fin de ligne */
									} /*S*/
									else /*P c1 = toujours '*' */
									{ /*S fausse alerte */
										ungetc(c2,pnfile);
										putc(c1,pfdoc);
										if(s)putch(c1);
									} /*S fausse alerte */
								} /*S*/
							} /*Sw*/
						} /*Selse*/

#ifdef FULL_LINE	/*O Opt. compil. *** FULL_LINE *** */
/*O						si pas option t */
						if(!t)
						{ /*S*/
/*O							copier les chars jusqu'en fin de ligne (ou EOF) y compris '\r' sous DOS */
							while ( (c1=getc(pnfile)) != '\n' && c1!=EOF )
							{ /*S*/
								putc(c1,pfdoc);
								if(s)putch(c1);
							} /*S*/
						} /*S*/
/*O						sinon (option t) */
						else
#endif				/*O Opt. compil. end *** FULL_LINE *** */
						{ /*S*/
/*O							aller au bout de la ligne sans copier, sauf les 'retour-chariot' */
							while ( (c1=getc(pnfile)) != '\n' && c1!=EOF )
							{ /*Sw*/
								if (c1=='\r')
								{ /*S*/
									putc( c1, pfdoc );
									if(s) putch( c1 );
								} /*S*/
							} /*Sw*/
						} /*S*/
/*O						puis envoyer les NL sous forme \n */
/*www						fprintf(pfdoc, "%s", NL );*/
/*www						if(s) puts("");*/
						putc(c1,pfdoc);
						if(s)putch(c1);
/*O						revenir sur NL */
						ungetc(c1,pnfile);                   
					} /*S traiter le commentaire C */

/*O					sinon: (pas de commentaire */
					else
					{ /*S pas le cas */
/*O						revenir en arrière de 2 caractères */
						ungetc(c3,pnfile);
						ungetc(c2,pnfile);
					} /*S pas le cas */
				} /*S endif char = '/' */
			} /*S endif!NL */
		} /*S end tq !EOF */
		return 0;
	} /*S getwikifiles_ */

mkd-getwikifiles.c

[modifier | modifier le wikicode]

Code du programme principal (main).

#include "version.h"
#include "getwikifiles.h"

// Variables globales
	unsigned char n=0,s=0,t=0,v=0;				/*P déclaration et initialisation des variables */
	char codes[5] = {0,0,0,0,0};				/*P version qui copie les codes avec l'option t dans getwikifiles_()
													Il peut être nécessaire de modifier les lignes (~161?) dans getwikifiles.c */
	// char codes[5] = {' ',' ',' ',' ',' '};	/*P version qui copie les commentaires après le caractère ' ' dans getwikifiles_()*/

int main(int argc, char *argv[])
{ /*O main Test */
//	char *fprj= "";					/*P nom fichier projet s'il existe		*/
	char fdoc[MAX];					/*P nom fichier documentaire en sortie	*/
//	char fdoc[] = "C++_doc.txt";	/*P nom fichier documentaire en sortie	*/

	char fsrc[MAX];					/*P nom fichier source a documenter		*/
//	char fsrc[] = ".\\C++_FILE.a";	/*P nom fichier source a documenter		*/
	extern  char codes[];			/*P codes */
	extern unsigned char A,B,C,F,P,S,a,f,j,l,n,p,s,t,v,w;	/*P rappels options booleennes */

/*O	init options par defaut */
//??	{n=0;s=0;t=0;v=0;} /*O option v = 0 (verbose) de compilation; v n'est pas utilisé dans ce module */
//	 O=0; /* Option=0 */

	int i=0;			/*P compteurs */
	int k=0;
	char isource=0;		/*P position nom du fichier source dans path source */
	char itarget=0;		/*P position fin du path_target avec '*' ou ':'(PC) */
	char ktar=0;		/*P position du '.' dans p_target */
	static char O;		/*P booleen =1 si option validee */
	static char L;		/*P booleen =1 si option langage */
	register int c=0;	/*P char (variable) */
	int c1=0;			/*P char (variable) pour version PC */

//	FILE *pfprj;  /*P FICHIER PROJET			*/
	FILE *pnfile; /*P FICHIER SOURCE A TRIER	*/
	FILE *pfdoc;  /*P FICHIER A DOCUMENTER		*/

	printf("Epreuve d'un module du programme d'extraction de documents avec mkd\n");
	printf("argv[0] = %s\n",argv[0]); 				/*T*/
	if (argc > 1) printf("argv[1] = %s\n",argv[1]);	/*T*/
	if (argc > 2) printf("argv[2] = %s\n",argv[2]);	/*T*/
	if (argc > 3) printf("argv[3] = %s\n",argv[3]);	/*T*/
		
/*O	Si la syntaxe n'est pas correcte (argc <2) "Nom-de-l'exécutable [--nst] [-Code(DHOPSTUw)] Fichier-source" */
	if (argc < 2) 
/*O	Alors, préciser la syntaxe et quitter sur erreur de syntaxe -1*/
	{ /*S syntaxe intégrée */
#ifdef FR
		printf("Syntaxe : %s [--Options(nst)] [-5 Codes(DHOPSTUw)] Fichier-source\n",argv[0]);
		printf("Appuyer sur la touche 'Entree' pour quitter.\n\n");
#endif
#ifdef EN
		printf("Syntax: %s [--Options(nst)] [-5 Codes(DHOPSTUw)] Fichier-_source\n",argv[0]);
		printf("Press 'Enter' to quit.\n");
#endif
		getc(stdin); // attente touche 'Entrée' */ 
		exit(-1);
	} /*S syntaxe intégrée */
/*O si argc = 2 (source cpp en premier paramètre) */
	if (argc == 2)
	{ /*S argc = 2 */
#ifdef VC10		
		if (strcpy_s(fsrc,argv[1])!=0)	/*w strcpy_s : évite l'erreur overflow */
#endif
#ifdef MSDEV41
		if (strcpy(fsrc,argv[1])==NULL)
#endif
		{
			printf("Err SRC : %d chars max\n",MAX);
			exit(-1);
		}
		else
		{ /*S*/
#ifdef VC10
			strcpy_s(fdoc,argv[1]); /*w strcpy_s : évite l'erreur overflow */
			strcat_s(fdoc,".txt");
#endif
#ifdef MSDEV41
			strcpy(fdoc,argv[1]); 
			strcat(fdoc,".txt");
#endif
			printf("SRC = %s\n",fsrc);	/*T*/
			printf("DST = %s\n",fdoc);	/*T*/
			printf("argc=2 - Options n=%d,s=%d,t=%d,v=%d Codes %c,%c,%c,%c,%c\n",n,s,t,v,codes[0],codes[1],codes[2],codes[3],codes[4]);	/*T*/
		} /*S*/
	} /*S argc = 2 */

/*O si argc = 3 (option ou code) */
	if (argc == 3)
	{ /*S argc = 3 */
		if (argv[1][0]=='-' && argv[1][1]=='-')	/*O Options ! */
		{ /*S Options */
			int i;
			// printf("argv[1][0]=%c - argv[1][1]=%c\n",argv[1][0],argv[1][1]);	/*T*/
			for (i=0 ; i<4 && (argv[1][(i+2)]!=0) ; i++) 
            { /*S*/
				if (argv[1][(i+2)]=='n') n=1;				/*O n,s,t sont des variables globales */
				else if (argv[1][(i+2)]=='s') s=1;			/*O*/
					else if (argv[1][(i+2)]=='t') t=1;		/*O*/
						else if (argv[1][(i+2)]=='v') v=1;	/*O*/
				// printf("argv[1][%d]=%c & n=%c, s=%c, t=%c\n",(i+2), argv[1][i+2],n,s,t);	/*T*/
			} /*S*/
		} /*S Options */
		else if (argv[1][0]=='-' && argv[1][1]!='-') /*O Codes ! */
		{ /*S Codes */
			int i;
			for (i=0 ; i<5 && (argv[1][i+1]!=0) ; i++) codes[i]=argv[1][i+1];	/*O affectation */	
		} /*S Codes */
		else /*O sinon erreur de syntaxe */
		{ /*S*/
			puts("Options ? || Codes ?\n");	/*O*/
			exit(-1);						/*O*/
		} /*S*/
/*O		affectation du nom de fichier source au nom de fichier destinataire, et ajouter .txt */
#ifdef VC10
		if (strcpy_s(fsrc,argv[2])!=0)
#endif
#ifdef MSDEV41
		if (strcpy(fsrc,argv[2])==NULL)
#endif
		{ /*S*/
			printf("Err SRC : %d chars max\n",MAX);
			exit(-1);
		} /*S*/
		else
		{ /*S*/
#ifdef VC10
			strcpy_s(fdoc,argv[2]);
			strcat_s(fdoc,".txt");
#endif
#ifdef MSDEV41
			strcpy(fdoc,argv[2]); 
			strcat(fdoc,".txt");
#endif
			printf("SRC = %s\n",fsrc);	/*T*/
			printf("DST = %s\n",fdoc);	/*T*/
			printf("argc=3 - Options n=%d,s=%d,t=%d,v=%d Codes %c,%c,%c,%c,%c\n",n,s,t,v,codes[0],codes[1],codes[2],codes[3],codes[4]);	/*T*/
		} /*S*/
	} /*S argc = 3 */

/*O si argc = 4 (options et code) */
	if (argc == 4)
	{ /*S argc = 4 */
		if (argv[1][0]=='-' && argv[1][1]=='-') /*O Options */
		{ /*S Options */
			int i;
			for (i=0 ; i<4 && (argv[1][i+2]!=0) ; i++) 
			{ /*S*/
				if (argv[1][i+2]=='n') n=1; /*O n,s,t sont des variables globales */
				else if (argv[1][i+2]=='s') s=1;
					else if (argv[1][i+2]=='t') t=1;
						else if (argv[1][(i+2)]=='v') v=1;
			} /*S*/
		} /*S Options */
		else
		{ /*S err */
			puts("Options ?\n");
			exit(-1);
		} /*S err */
		if (argv[2][0]=='-' && argv[2][1]!='-') /*O Codes */
		{ /*S Codes */
			int i;
			for (i=0 ; i<5 && (argv[2][i+1]!=0) ; i++) codes[i]=argv[2][i+1];		
		} /*S Codes */
		else /*O erreur de syntaxe */
		{ /*S*/
			puts("Codes ?\n");
			exit(-1);
		} /*S*/
#ifdef VC10
		if (strcpy_s(fsrc,argv[3])!=0)
#endif
#ifdef MSDEV41
		if (strcpy(fsrc,argv[3])==NULL)
#endif
		{ /*S*/
			printf("Err SRC : %d chars max\n",MAX);
			exit(-1);
		} /*S*/
		else
		{ /*S*/
#ifdef VC10
			strcpy_s(fdoc,argv[3]);
			strcat_s(fdoc,".txt");
#endif
#ifdef MSDEV41
			strcpy(fdoc,argv[3]);
			strcat(fdoc,".txt");
#endif
			printf("SRC = %s\n",fsrc);	/*T*/
			printf("DST = %s\n",fdoc);	/*T*/
			printf("argc=4 - Options n=%d,s=%d,t=%d,v=%d Codes %c,%c,%c,%c,%c\n",n,s,t,v,codes[0],codes[1],codes[2],codes[3],codes[4]);	/*T*/
		} /*S*/
	} /*S argc = 4 */

/*O ouvrir le fichier source en lecture binaire*/
	{ /*S demarrage du test */
/*O		si l'ouverture du fichier source n'est pas correcte */
#ifdef VC10 		
		if (fopen_s(&pnfile, fsrc,"rb") !=0 )
#endif
#ifdef MSDEV41
		if  (( pnfile = fopen ( fsrc,"rb" )) == 0 )	 // old syntax 
#endif
		{ /*S ! open source pnfile */
	
/*O			ecrire fichier "nomfich" pas trouvé ou erreur d'ouverture */
#ifdef FR 
			printf ("fichier \'%s\' : absent ou erreur d'ouverture\n",fsrc); 
			puts("Appuyer sur la touche 'Retour-chariot' pour quitter\n\n"); 
#endif
#ifdef EN 
			printf ("file \'%s\' : non found or open error\n",fsrc); 
			puts("Press 'Enter' to quit.\n"); 
#endif
			getchar();
			exit(2);
		} /*S ! open source pnfile */
/*O		sinon, ouvrir le fichier à  documenter en écriture ou réécriture */
		else
		{ /*S open pfdoc write */
/*O			si il y a une erreur à  l'ouverture l'écrire et quitter en renvoyant le code d'erreur 2 */
#ifdef VC10
			if((fopen_s(&pfdoc,fdoc,"wb")) != 0)
#endif
#ifdef MSDEV41
			if((pfdoc = fopen(fdoc,"wb")) == NULL)  // old syntax
#endif
			{ /*S si err à  l'ouverture de pfdoc*/
#ifdef FR 
				printf("fichier \'%s\' : erreur d'ouverture en écriture\n",fdoc); 
				puts("Tapez sur la touche 'Retour-chariot' pour quitter\n\n"); 
#endif
#ifdef EN 
				printf("file \'%s\' : open error\n",fdoc); 
				puts("Press 'Enter' to quit.\n"); 
#endif
				getchar();
				exit(-2);
			} /*S si err à  l'ouverture de pfdoc */
			else
			{ /*S sinon*/
/*O				si options n ou v ou s valides et pas t, écrire le nom du fichier lu */
				if(n||v||s)
				{ /*S si n ou v ou s valide */
					if (!t) fprintf(pfdoc,"%s\n(file %s :)", NL, fsrc );
					if( v || s ) printf("\n\n(file %s :)\n",fsrc);
					if (!t)fprintf (pfdoc," Options n=%d s=%d t=%d verbose=%d",n,s,t,v);
					if (!t)fprintf (pfdoc, "%s", NL );
				} /*S si n ou v ou s valide */
			} /*S sinon*/
		} /*S open pfdoc write */

		getwikifiles_ (pfdoc,pnfile);

/*O		fermer le fichier source et en cas d'erreur écrire "Erreur de fermeture */
		if (fclose(pnfile))
		{ /*S si*/
#ifdef FR 
			printf("Erreur de fermeture : \'%s\'\n",fsrc); 
#endif
#ifdef EN 
			printf("Error on closed : \'%s\'\n",fsrc);
#endif
			exit(2);
		} /*S fin si*/
/*O		Fermer tous les autres fichiers */
		{ /* fermer */
			int numclosed = _fcloseall( ); //P sous unix retourne 0 ou EOF
#ifdef FR 
			printf( "Nombre de fichiers clos par _fcloseall : %u\n", numclosed ); 
#endif
#ifdef EN 
			printf( "Number of files closed by _fcloseall: %u\n", numclosed ); 
#endif
		} /* fermer */
	} /*S demarrage du test */
#ifdef FR 
	puts("pressez sur la touche 'Retour-chariot' pour quitter\n"); 
#endif
#ifdef EN 
	puts("Press 'Enter' to quit.\n"); 
#endif
	getchar();	
	return 0;
} /*O main Test */

Fichiers de commandes WINDOWS/DOS

[modifier | modifier le wikicode]
rem Fichier : compiler.bat
rem rm *.o
rem gcc -c getwikifiles.c
rem gcc -c mkd-getwikifiles.c
rem gcc -o getwikifiles.o mkd-getwikifiles.o -o mkd-getwikifiles.exe
gcc -g -o mkd-getwikifiles.exe mkd-getwikifiles.c getwikifiles.c

Environnement mingw

[modifier | modifier le wikicode]
rem Fichier : env-mingw.bat
rem pour établir l'environnement de travail avec mingw
rem cmd /? pour les options de la ligne de commandes

cmd /K	set PATH=c:\MinGW\bin;%PATH%
echo "environnement de travail pour mingw"
echo "exit pour quitter"

Shell tests.bat

[modifier | modifier le wikicode]

Programme des tests du module getwikifiles.

@TITLE TESTS.BAT
echo off
color 2E

REM **********************************************************************************
REM tests.bat R 11.01
REM mkd-getwikifiles.exe est simplifé par rapport à mkd et n'accepte pas de fichier de
REM destination pour cela on utilise l'artifice les artifices de redirection > et >>
REM autrement: utiliser mkd.exe pour créer le fichier .h avec la syntaxe de mkd selon
REM les versions de mkd.exe
REM **********************************************************************************

echo mise a jour du fichier mkd-getwikifiles.exe, ... dans le repertoire courant.
if exist ..\mkd-getwikifiles.exe Xcopy ..\mkd-getwikifiles.exe . /D 

if not exist mkd-getwikifiles.exe goto ERR1
pause

cls
echo test sans argument donne la syntaxe.
pause
mkd-getwikifiles
pause

cls
echo test avec pour argument le fichier Contenus
pause
mkd-getwikifiles Contenus
type Contenus.txt
pause

cls
echo test avec numérotation de ligne
pause
mkd-getwikifiles --n Contenus
type Contenus.txt
pause

cls
echo test avec copie à l'écran
pause
mkd-getwikifiles --s Contenus
type Contenus.txt
pause

cls
echo test avec texte seul et copie à l'écran (sans les double crochets)
pause
mkd-getwikifiles --ts Contenus
type Contenus.txt
copy /Y Contenus.txt .\files\*
pause

cls
echo test avec texte seul et copie à l'écran (sans les double crochets)
pause
mkd-getwikifiles --ts -FI ArticleTrois
type ArticleTrois.txt
copy /Y ArticleTrois.txt .\files\.
pause

exit 0

:ERR1
echo mkd-getwikifiles.exe absent, not exist.
exit 1

Fichiers de commandes LINUX

[modifier | modifier le wikicode]