Un programme pour indenter les fichier en .cpp, .h, .c, .java

Description

deja, pour que votre fichier soit bien indenter, il ne faut surtout pas mettre de 'entree' et de 'tabulation', il faut tout aligner sur une ligne, car parfois ca bug si vous indenter un fichier qui l'est deja!!!
vous pouvez le modifier, en plus les fonction utiler sont en francais, et il y a des commentaire.(mon programme ne gere pas les commentaire)
c'est mon premier annee de BTS IRIS, et c'est le premier projet que je devait realiser.
j'espere qu'il sert a quelque chose, lol!!
faite un copier coller et tester le avec visual c++!!

Source / Exemple :


#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>

/**************** declaration des fonctions *******************************************/
																					/**/
 int RechercheCaractere(char ContenuFichier[1000000], int d);						/**/
 void DecalageEtAjoutTabulation(char ContenuFichier[1000000],int pos);				/**/
 void DecalageEtAjoutEntree(char ContenuFichier[1000000],int pos);					/**/
 void DecalageEtAjoutEspace(char ContenuFichier[1000000],int pos);					/**/
 void Decalage(char ContenuFichier[1000000],int pos);								/**/
																					/**/
/**************************************************************************************/

/*************** fonction principale **************************************************/
 void main ()																		/**/
 {																					/**/
	fstream f;																		/**/
	fstream g;																		/**/
	char NomFichier[50];															/**/
	char ContenuFichier[1000000];													/**/
	int a=0,b=0,i=0,d=0,p;															/**/
																					/**/
	cout<<"entrez le nom du fichier a indenter: "<<endl;							/**/
	cin>>NomFichier;																/**/
																					/**/
	f.open( NomFichier, ios::in );//ouverture du fichier							/**/
																					/**/
	if(f.fail())//test si fichier est bien ouvert									/**/
	{																				/**/
		cout<<"il y a erreur lors de l'ouverture du fichier!!!"<<endl;				/**/
		exit(1);																	/**/
	}																				/**/
																					/**/
	do																				/**/
	{																				/**/
		if(!f.eof())																/**/
		{																			/**/
			f.get(ContenuFichier[a]);												/**/
		}																			/**/
		a++;																		/**/
	}while(!f.eof());																/**/
																					/**/
	ContenuFichier[a]=0x00;															/**/
																					/**/
	f.close();//fermeture du fichier												/**/
																					/**/
	p=RechercheCaractere(ContenuFichier,a);											/**/
																					/**/
	for(i=0;i<=p;i++)																/**/
	{																				/**/
		cout<<ContenuFichier[i];													/**/
	}																				/**/
																					/**/
	g.open("save.txt", ios::out );													/**/
																					/**/
	g.write(ContenuFichier,p);														/**/
	g.close();																		/**/
 }																					/**/
/**************************************************************************************/

/***********************Définition des fonctions***************************************/
																					/**/
																					/**/
//Fonction qui decale et qui rajoute un espace										/**/
																					/**/
void DecalageEtAjoutEspace(char ContenuFichier[1000000],int pos)					/**/
{																					/**/
	int i=0,j;																		/**/
																					/**/
	do																				/**/
	{																				/**/
		i++;																		/**/
																					/**/
	}while(ContenuFichier[i] != 0x00);												/**/
																					/**/
	i=i+1;																			/**/
																					/**/
	for(j=i;j>=pos;j--)																/**/
	{																				/**/
		ContenuFichier[j+1]=ContenuFichier[j];										/**/
	}																				/**/
																					/**/
	ContenuFichier[pos]=' ';														/**/
}																					/**/
																					/**/
/********************************************/										/**/
																					/**/
//Fonction qui decale et qui rajoute un entree										/**/
																					/**/
void DecalageEtAjoutEntree(char ContenuFichier[1000000],int pos)					/**/
{																					/**/
	int i=0,j;																		/**/
																					/**/
	do																				/**/
	{																				/**/
		i++;																		/**/
																					/**/
	}while(ContenuFichier[i] != 0x00);												/**/
																					/**/
	i=i+1;																			/**/
																					/**/
	for(j=i;j>=pos;j--)																/**/
	{																				/**/
		ContenuFichier[j+1]=ContenuFichier[j];										/**/
	}																				/**/
																					/**/
	ContenuFichier[pos]='\n';														/**/
}																					/**/
																					/**/
/********************************************/										/**/
																					/**/
//Fonction qui decale et qui rajoute une tabulation									/**/
																					/**/
void DecalageEtAjoutTabulation(char ContenuFichier[1000000],int pos)				/**/
{																					/**/
	int i=0,j;																		/**/
																					/**/
	do																				/**/
	{																				/**/
		i++;																		/**/
																					/**/
	}while(ContenuFichier[i] != 0x00);												/**/
																					/**/
	i=i+1;																			/**/
																					/**/
	ContenuFichier[i]=0x00;															/**/
																					/**/
	for(j=i;j>=pos;j--)																/**/
	{																				/**/
		ContenuFichier[j+1]=ContenuFichier[j];										/**/
	}																				/**/
																					/**/
	ContenuFichier[pos]='\t';														/**/
}																					/**/
																					/**/
/*******************************************/										/**/
//decale la partie droite,vers la gauche,											/**/
//d'un cran a partir de l'endroit ou l'on est.										/**/
																					/**/
void Decalage(char ContenuFichier[1000000],int pos)									/**/
{																					/**/
	int j;																			/**/
																					/**/
	j=pos;																			/**/
																					/**/
	do																				/**/
	{																				/**/
		ContenuFichier[j]=ContenuFichier[j+1];										/**/
		j++;																		/**/
																					/**/
	}while(ContenuFichier[j] != 0x00);												/**/
}																					/**/
/**************************************************************************************/

/**************************************************************************************/
																					/**/
/******Fonction qui recherche des caractères********/								/**/
																					/**/
int RechercheCaractere(char ContenuFichier[1000000], int d)							/**/
{																					/**/
																					/**/
	int i=0,j=0,pos,m,n,l=1,k,b=0,c=0,h=0,z=0,p;									/**/
																					/**/
																					/**/
																					/**/
			/*****recherche et efface une tabulation  ********/						/**/
																					/**/
		do	//boucle servant a supprimer les entrees et les tabulations				/**/
		{																			/**/
			if(ContenuFichier[b]=='\t')												/**/
			{																		/**/
				pos=b;																/**/
				Decalage(ContenuFichier,pos);										/**/
				b--;	//on decremente, car au même endroit						/**/
			}			//on peut avoir une tabulation								/**/
																					/**/
																					/**/
																					/**/
			/*****recherche et efface un entree  ******/							/**/
																					/**/
																					/**/
			else if(ContenuFichier[b]=='\n')										/**/
			{																		/**/
				pos=b;																/**/
				Decalage(ContenuFichier,pos);										/**/
				b--;	//on decremente, car au même endroit						/**/
			}			//on peut avoir une tabulation								/**/
																					/**/
																					/**/
			b++;																	/**/
																					/**/
																					/**/
		}while(ContenuFichier[b] != 0x00);	//tant qu'on a pas fin de caractère		/**/
																					/**/
																					/**/
		ContenuFichier[b-1] =0x00;	//on marque la fin de caractère					/**/
																					/**/
																					/**/
		do	//boucle servant à ajouter des espaces selon les cas, puis a ajouter	/**/
		{	//des entree dans certaines conditions									/**/
																					/**/
			/************recherche un ';'**********/								/**/
																					/**/
																					/**/
			if(ContenuFichier[i]==';')	//si on rencontre un ";"					/**/
			{																		/**/
				if(ContenuFichier[i-1]==' ')//si on a une espace avant ';'			/**/
				{																	/**/
						//on fait rien												/**/
				}																	/**/
																					/**/
				else	//sinon on rajoute un espace devant							/**/
				{																	/**/
					pos=i;															/**/
					DecalageEtAjoutEspace(ContenuFichier,pos);						/**/
				
				}
					
			}

			if(ContenuFichier[i]==';')	//si on a un ";" (pour l'ajout d'un entree apres)
			{
				if(ContenuFichier[i+1]=='\0') //si on a un entree juste apres ';', on fait rien
				{//si on a un entree apres ';' ou qu'on est compris entre '(' et ')', on fait rien
				}

				else
				{
					pos=i+1;			//sinon, on rajoute un entree apres ';'
					DecalageEtAjoutEntree(ContenuFichier,pos);

				}
			}

			/***************recherche un 'entree' avant le 'COUT' ********/

			else if(ContenuFichier[i]=='c' && ContenuFichier[i+1]=='o' && ContenuFichier[i+2]=='u' && ContenuFichier[i+3]=='t')	
			{
				if(ContenuFichier[i-1]=='\n')
				{
								
				}

				else			
				{
					pos=i-1;						//sinon on rajoute un espace devant
					DecalageEtAjoutEntree(ContenuFichier,pos);
				
				}
					
			}

			/***************recherche un 'entree' avant le 'CIN' ********/

			else if(ContenuFichier[i]=='c' && ContenuFichier[i+1]=='i' && ContenuFichier[i+2]=='n')	
			{
				if(ContenuFichier[i-1]=='\n')
				{
								
				}

				else			
				{
					pos=i-1;		//sinon on rajoute un espace devant
					DecalageEtAjoutEntree(ContenuFichier,pos);
				
				}
					
			}
		

	
		/****************************recherche un '=' ou '=='*****************/	
			
			else if(ContenuFichier[i]=='=')//si on rencontre un "="
			{
				if(ContenuFichier[i]=='=' && ContenuFichier[i+1]=='=')//si le caractere"=" est suivie de '='
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '==', on ne fait rien
					
					}
					

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '=='
						{								// on met une espace apres '=='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '=='
						{									//on met une espace devant '=='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '==', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
					
				}

				else if(ContenuFichier[i]=='=' && ContenuFichier[i-1]=='=' ||
					ContenuFichier[i]=='=' && ContenuFichier[i-1]=='!' ||
					ContenuFichier[i]=='=' && ContenuFichier[i-1]=='<' ||
					ContenuFichier[i]=='=' && ContenuFichier[i-1]=='>')
					//on met tous ici, car c'est par cette condition qu'on a un '=',
					//dans les autre en dessous, on cherche d'abord '!', ou'<' ou '>'
				{
										//si on a '=' et q'avant on avait '='
				}									//on ne fait rien, car l'espace est deja mis 
													//par la condition en haut
			
				else	//si on a seulement '=', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '=', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '='
					{									//on rajoute un espace apres '='
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '='
					{									//on rajoute un espace avant '='
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}

			}

		/****************************recherche un '!=' ou '!'*****************/
			
			else if(ContenuFichier[i]=='!')//si on rencontre un "!"
			{
				if(ContenuFichier[i]=='!' && ContenuFichier[i+1]=='=')//si le caractere"!" est suivie de '='
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '!=', on ne fait rien
					
					}
					

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '!='
						{								// on met une espace apres '!='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '!='
						{									//on met une espace devant '!='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '!=', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
					
				}

			
				else	//si on a seulement '!', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '!', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '!'
					{									//on rajout un espace apres '!'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '!'
					{									//on rajoute un espace avant '!'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}

			}

		/****************************recherche un '>=' ou '>' ou '>>'***************/		
			
			else if(ContenuFichier[i]=='>')//si on rencontre un ">"
			{

				if(ContenuFichier[i]=='>' && ContenuFichier[i+1]=='>')//si le caractere">" est suivie de '>'
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{								// apres '>>', on ne fait rien
					
					}

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '>>'
						{								// on met une espace apres '>>'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '>>'
						{									//on met une espace devant '>>'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						}
						else		//si on a pas d'espace devant et apres '>>', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
				}

				else if(ContenuFichier[i]=='>' && ContenuFichier[i-1]=='>')
				{
						//si on a '>' et q'avant on avait '>'
				}					//on ne fait rien, car l'espace est deja mis 
									//par la fonction en haut

				else if(ContenuFichier[i]=='>' && ContenuFichier[i+1]=='=')//si le caractere">" est suivie de '='
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '>=', on ne fait rien
					
					}
					
					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '>='
						{								// on met une espace apres '>='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '>='
						{									//on met une espace devant '>='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '>=', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
					
				}

			
				else	//si on a seulement '>', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '>', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '>'
					{									//on rajout un espace apres '>'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '>'
					{									//on rajoute un espace avant '>'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}

			}

		/****************************recherche un '<=' ou '<' ou '<<'******************/		
			
			else if(ContenuFichier[i]=='<')//si on rencontre un "<"
			{

				if(ContenuFichier[i]=='<' && ContenuFichier[i+1]=='<')//si le caractere"<" est suivie de '<'
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{								// apres '<<', on ne fait rien
					
					}

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '<<'
						{								// on met une espace apres '<<'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '<<'
						{									//on met une espace devant '<<'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						}
						else		//si on a pas d'espace devant et apres '<<', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
				}

				else if(ContenuFichier[i]=='<' && ContenuFichier[i-1]=='<')
				{
						//si on a '<' et q'avant on avait '<'
				}					//on ne fait rien, car l'espace est deja mis 
									//par la fonction en haut

				else if(ContenuFichier[i]=='<' && ContenuFichier[i+1]=='=')//si le caractere"<" est suivie de '='
				{

					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '<=', on ne fait rien
					
					}
					

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '<='
						{								// on met une espace apres '<='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '<='
						{									//on met une espace devant '<='
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '<=', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
					
				}

			
				else	//si on a seulement '<', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '<', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '<'
					{									//on rajout un espace apres '<'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '<'
					{									//on rajoute un espace avant '<'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}

			}

		/*****************************recherche un '&'********************/

			
			else if(ContenuFichier[i]=='&')//si on rencontre un "&"
			{
				if(ContenuFichier[i]=='&' && ContenuFichier[i+1]=='&')//si le caractere"&" est suivie de '&'
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '&&', on ne fait rien
					
					}

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '&&'
						{								// on met une espace apres '&&'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '&&'
						{									//on met une espace devant '&&'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '&&', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
				}

				else if(ContenuFichier[i]=='&' && ContenuFichier[i-1]=='&')
				{
								//si on a '&' et q'avant on avait '&'
				}									//on ne fait rien, car l'espace est deja mis 
													//par la fonction en haut
			
				else	//si on a seulement '&', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '&', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '&'
					{									//on rajout un espace apres '&'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '&'
					{									//on rajoute un espace avant '&'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
			
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}
			}

		/***************************recherche un '|'*******************/

			
			else if(ContenuFichier[i]=='|')//si on rencontre un "|"
			{
				if(ContenuFichier[i]=='|' && ContenuFichier[i+1]=='|')//si le caractere"|" est suivie de '|'
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '||', on ne fait rien
					
					}

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '||'
						{								// on met une espace apres '||'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '||'
						{									//on met une espace devant '||'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '||', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
				}

				else if(ContenuFichier[i]=='|' && ContenuFichier[i-1]=='|')
				{
								//si on a '|' et q'avant on avait '|'
				}									//on ne fait rien, car l'espace est deja mis 
													//par la fonction en haut
			
				else	//si on a seulement '|', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{	
										//si on a une espace devant et apres
					}									// '|', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '|'
					{									//on rajout un espace apres '|'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
				
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '|'
					{									//on rajoute un espace avant '|'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}
			}

			/************************recherche un '+'***********************/

			else if(ContenuFichier[i]=='+')//si on rencontre un "+"
			{
				if(ContenuFichier[i]=='+' && ContenuFichier[i+1]=='+')//si le caractere"+" est suivie de '+'
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '++', on ne fait rien
					
					}

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '++'
						{								// on met une espace apres '++'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '&&'
						{									//on met une espace devant '&&'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '++', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
				}

				else if(ContenuFichier[i]=='+' && ContenuFichier[i-1]=='+')
				{
								//si on a '&' et q'avant on avait '&'
				}									//on ne fait rien, car l'espace est deja mis 
													//par la fonction en haut
			
				else	//si on a seulement '+', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '+', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '+'
					{									//on rajout un espace apres '&'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '+'
					{									//on rajoute un espace avant '+'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
			
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}
			}

			/************************recherche un '-'***************/

			else if(ContenuFichier[i]=='-')//si on rencontre un "-"
			{
				if(ContenuFichier[i]=='-' && ContenuFichier[i+1]=='-')//si le caractere"-" est suivie de '-'
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '--', on ne fait rien
					
					}

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '--'
						{								// on met une espace apres '--'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '--'
						{									//on met une espace devant '--'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '--', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
				}

				else if(ContenuFichier[i]=='-' && ContenuFichier[i-1]=='-')
				{
								//si on a '-' et q'avant on avait '-'
				}									//on ne fait rien, car l'espace est deja mis 
													//par la fonction en haut
			
				else	//si on a seulement '-', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '-', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '-'
					{									//on rajout un espace apres '-'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '-'
					{									//on rajoute un espace avant '-'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
			
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}
			}

			/************************recherche un '*'********************/

			else if(ContenuFichier[i]=='*')
			{	
				if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
				{
				
				}									

				else if(ContenuFichier[i-1]==' ')
				{						
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
				
				}

				else if(ContenuFichier[i+1]==' ')
				{	
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
			
				}

				else //sinon on met un espace a doite et a gauche
				{
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
					DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
				
				}

			}

			/************************recherche un '/' ou '//'***************/

			
			else if(ContenuFichier[i]=='/')//si on rencontre un "/"
			{
				if(ContenuFichier[i]=='/' && ContenuFichier[i+1]=='/')//si le caractere"/" est suivie de '/'( '//' pour les commentaires)
				{
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+2]==' ')//si on a une espace devant et
					{																// apres '//', on ne fait rien
					
					}

					else
					{
						if(ContenuFichier[i-1]==' ')//si on a juste une espace devant '//'
						{								// on met une espace apres '//'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
						
						}
						else if(ContenuFichier[i+2]==' ')//si on a juste une espace apres '//'
						{									//on met une espace devant '//'
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
						
						}
						else		//si on a pas d'espace devant et apres '//', on en rajoute
						{
							pos=i;
							DecalageEtAjoutEspace(ContenuFichier,pos);
							DecalageEtAjoutEspace(ContenuFichier,pos=pos+3);
						
						}
					}
				}

				else if(ContenuFichier[i]=='/' && ContenuFichier[i-1]=='/')
				{
								//si on a '/' et q'avant on avait '/'
				}									//on ne fait rien, car l'espace est deja mis 
													//par la fonction en haut
			
				else	//si on a seulement '/', 							
				{	
					if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
					{
									//si on a une espace devant et apres
					}									// '/', on ne fait rien

					else if(ContenuFichier[i-1]==' ')//si on a seulement un espace devant '/'
					{									//on rajout un espace apres '/'
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
					
					}

					else if(ContenuFichier[i+1]==' ')//si on a seulement un espace apres '/'
					{									//on rajoute un espace avant '/'
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
			
					}

					else //sinon on met un espace a doite et a gauche
					{
						pos=i;
						DecalageEtAjoutEspace(ContenuFichier,pos);
						DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
					
					}
				}
			}

			/************************recherche un '('************************/

			else if(ContenuFichier[i]=='(')	//si on rencontre un '('
			{
				if(ContenuFichier[i+1]==' ')//si on a une espace avant '('
				{
				//on ne fait rien
				}
				else			//si on a rien devant '(' on met un espace
				{
					pos=i+1;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
				}

			}

			/************************recherche un ')'***********************/

			else if(ContenuFichier[i]==')')	//si on rencontre un ')'
			{
				if(ContenuFichier[i-1]==' ')//si on a une espace avant ')'
				{
									//on ne fait rien
				}
				else			//si on a rien devant ')' on met un espace
				{
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
				}

			}
			/************************recherche un ','********************/

			else if(ContenuFichier[i]==',')
			{	
				if(ContenuFichier[i-1]==' ' && ContenuFichier[i+1]==' ')
				{	
				
				}									

				else if(ContenuFichier[i-1]==' ')
				{						
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos=pos+1);
				
				}

				else if(ContenuFichier[i+1]==' ')
				{	
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
				
				}

				else //sinon on met un espace a doite et a gauche
				{
					pos=i;
					DecalageEtAjoutEspace(ContenuFichier,pos);
					DecalageEtAjoutEspace(ContenuFichier,pos=pos+2);
		
				}

			}

			/*******pour l'ajout d'un entree apres case(1):*****/

			else if(ContenuFichier[i]=='c' && ContenuFichier[i+1]=='a' && ContenuFichier[i+2]=='s' && ContenuFichier[i+3]=='e')
			{
				p=i+3;
				do
				{
					p++;

					if(ContenuFichier[p] == ':')
					{
						pos=p+1;
						DecalageEtAjoutEntree(ContenuFichier,pos);
					}

				}while(ContenuFichier[p] != ':');

			}

			

			/************************recherche un '{'*******************/

			else if(ContenuFichier[i]=='{')
			{	
					if(ContenuFichier[i-1]=='\n' && ContenuFichier[i+1]=='\n')
					{
					
						//si on a un entree devant et apres
						// '{', on ne fait rien
					}

					else if(ContenuFichier[i-1]=='\n')//si on a seulement un entree devant '='
					{									//on rajoute un entree apres '='
						pos=i+1;
						DecalageEtAjoutEntree(ContenuFichier,pos);
					
					}

					else if(ContenuFichier[i+1]=='\n' )//si on a seulement un entree apres '='
					{									//on rajoute un entree avant '='
						pos=i-1;
						DecalageEtAjoutEntree(ContenuFichier,pos);
					
					}

					else
					{//sinon on met un entree a doite et a gauche
						pos=i;

						DecalageEtAjoutEntree(ContenuFichier,pos);
						DecalageEtAjoutEntree(ContenuFichier,pos=pos+2);
					
					}

			}

			/************************recherche un '}'***********/

			else if(ContenuFichier[i]=='}')
			{	
					if(ContenuFichier[i-1]=='\n' && ContenuFichier[i+1]=='\n')
					{
					
						//si on a un entree devant et apres
						// '{', on ne fait rien
					}

					else if(ContenuFichier[i-1]=='\n')//si on a seulement un entree devant '='
					{									//on rajout un entree apres '='
						pos=i+1;
						DecalageEtAjoutEntree(ContenuFichier,pos);
					
					}

					else if(ContenuFichier[i+1]=='\n' )//si on a seulement un entree apres '='
					{									//on rajoute un entree avant '='
						pos=i-1;
						DecalageEtAjoutEntree(ContenuFichier,pos);

					
					}

					else //sinon on met un entree a doite et a gauche
					{
						pos=i;

						DecalageEtAjoutEntree(ContenuFichier,pos);
						DecalageEtAjoutEntree(ContenuFichier,pos=pos+2);
					
					}
			}

			//pour mettre un 'entree' avant le #include<iostream.h>,...

			else if(ContenuFichier[i]=='#' && ContenuFichier[i+1]=='i')
			{

				if(ContenuFichier[i-1]=='\n')
				{
				}

				else
				{
					pos=i;
					DecalageEtAjoutEntree(ContenuFichier,pos);
				}
			}

			i++;

		}while(ContenuFichier[i] != 0x00);

/******** ajout de tabulation et suppression de entree dans une boucle FOR******/

	m=0;
	do
	{	// dans la boucle FOR, on retire les 'entree' apres les ';'
		//que l'on avait ajouter precedemment
		if(ContenuFichier[m]=='f' && ContenuFichier[m+1]=='o' && ContenuFichier[m+2]=='r')
		{
			n=m+3;
			do
			{
				if(ContenuFichier[n] == ';')
				{
					pos=n+1;
					Decalage(ContenuFichier,pos);
				}
				n++;

			}while(ContenuFichier[n] != ')');//tant que l'on rencontre pas la fin du ')' du FOR
		}

						//pour l'ajout de tabulations
		else if(ContenuFichier[m]=='\n')
		{

			if(ContenuFichier[m+1]=='{')
			{
					
				if(l==1)
				{
				}
				else
				{
					k=0;
					do
					{
						pos=m+1;
						DecalageEtAjoutTabulation(ContenuFichier,pos);
						k++;
					}while(k < (l-1));
				}
				l++;//pour qu'il y a une tabulation en plus dans la prochaine ligne
			}
	
			else if(ContenuFichier[m+1]=='}')
			{
					
				k=0;
				l--;
				if(l==1)
				{
				}
				else
				{
					k=0;
					do
					{
						pos=m+1;
						DecalageEtAjoutTabulation(ContenuFichier,pos);
						k++;
					}while(k < (l-1));
				}
			
			}

			else
			{
				if(l==1)
				{
				}

				else
				{
					k=0;
					do
					{
						pos=m+1;
						DecalageEtAjoutTabulation(ContenuFichier,pos);
						k++;
					}while(k < (l-1));
				}
			}

		}

		m++;

	}while(ContenuFichier[m] != 0x00);

	do
	{

		if(ContenuFichier[z]=='c' && ContenuFichier[z+1]=='a' && ContenuFichier[z+2]=='s' && ContenuFichier[z+3]=='e')
		{
			h=z+4;
			do
			{
				if(ContenuFichier[h] == '\n')
				{
					pos=h+1;
					DecalageEtAjoutTabulation(ContenuFichier,pos);
				}

				h++;

			}while(ContenuFichier[h] != 'b' || ContenuFichier[h+1] != 'r' || 
			ContenuFichier[h+2] != 'e' || ContenuFichier[h+3] != 'a' || ContenuFichier[h+4] != 'k');

		}

		z++;

	}while(ContenuFichier[z] != 0x00);

	return z;
}

Conclusion :


comme je l'ai dit, on peut le modifier, l'interface est en franvais, c'est surtout bien expliquer avec des comentaires!!

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.