Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

utilisateurs:aldian:programme_formatage_portail_lignes_commandes [Le 28/04/2011, 22:51]
aldian anonymisation
utilisateurs:aldian:programme_formatage_portail_lignes_commandes [Le 28/04/2011, 22:55]
Ligne 1: Ligne 1:
-====== Programme de formatage de la page portail sur les lignes de commandes ====== 
- 
-En relation avec la rédaction en cours de la page [[:​portail_lignes_commandes|portail lignes de commande]] qui est en projet, et avec la page [[:​utilisateurs:​aldian:​participer_portail_lignes_commandes|participer au portail sur les lignes de commandes]] qui vient en appoint pour décharger les contributeurs de la lourde tache du formatage, un programme java a été créé pour générer automatiquement le formatage. Le programme est particulièrement long (400 lignes), mais il a été conçu dans l'​optique de la fiabilité et de l'​ergonomie. Et plus un programme est ergonomique,​ plus il est long ;). 
- 
-===== Utilisation ===== 
- 
-Copiez-collez le code source dans un fichier texte que vous nommerez "​CommandArray.java"​. Vous avez besoin d'​avoir installé le paquet [[:​tutoriel:​comment_installer_un_paquet|gcj]] pour pouvoir compiler du java en ligne de commande. 
- 
-Compilez le programme avec la commande suivante: 
-<​code>​javac CommandArray.java</​code>​ 
- 
-Ensuite en admettant que vous ayez copié collé tous les modèles renseignés de la page [[:​utilisateurs:​aldian:​participer_portail_lignes_commandes|participer au portail sur les lignes de commandes]] dans un fichier nommé commandes.txt,​ exécutez la commande: <​code>​java CommandArray commandes.txt</​code>​ Le résultat s'​affiche à l'​écran et est stocké dans le fichier commandes.txt_format.txt 
- 
- 
-===== Le code source ===== 
- 
-Ce code source est en version 0.1.1. Il n'a pas encore été beaucoup testé et pourra être sujet à modifications. 
- 
-<​code>​ 
-/*   ​CommandArray:​ This program create the formating for the page  
- ​* ​  ​portail_lignes_de_commande of site http://​doc.ubuntu-fr.org/​ 
- ​*  ​ 
- ​* ​  ​Copyright (C) 2009  Aldian (Administrator of Ubuntu French Documentation) 
- * 
- ​* ​  This program is free software: you can redistribute it and/or modify 
- ​* ​  it under the terms of the GNU General Public License as published by 
- ​* ​  the Free Software Foundation, either version 3 of the License, or 
- ​* ​  (at your option) any later version. 
- * 
- ​* ​  This program is distributed in the hope that it will be useful, 
- ​* ​  but WITHOUT ANY WARRANTY; without even the implied warranty of 
- ​* ​  ​MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ​ See the 
- ​* ​  GNU General Public License for more details. 
- * 
- ​* ​  You should have received a copy of the GNU General Public License 
- ​* ​  along with this program. ​ If not, see <​http://​www.gnu.org/​licenses/>​. 
- ​* ​ 
- */ 
- 
-import java.io.BufferedReader;​ 
-import java.io.BufferedWriter;​ 
-import java.io.FileNotFoundException;​ 
-import java.io.FileReader;​ 
-import java.io.FileWriter;​ 
-import java.io.IOException;​ 
-import java.net.MalformedURLException;​ 
-import java.net.URL;​ 
-import java.util.LinkedList;​ 
- 
- 
-/** 
- * @author Aldian (Administrator of Ubuntu French Documentation) 
- ​* ​ 
- * génère le formatage correspondant à l'​ensemble des commandes fournies dans le  ​ 
- * fichier passé en paramètre: ​ 
- ​*  ​ 
- * paramètre obligatoire:​ nom du fichier ​ 
- * le résultat est stocké dans le fichier NOM_FICHIER_format.txt ​ 
- * le fichier source doit contenir au moins une fois le motif suivant: ​ 
- ​*  ​ 
- * NOM:  
- * DESCRIPTION: ​ 
- * LIEN_SYNOPSIS: ​ 
- * LIEN:  
- * LIEN_MANPAGE: ​ 
- * LIEN_FORUM: ​ 
- ​*  ​ 
- * Le nombre de LIEN est indifférent. Une entrée valide doit contenir au moins  
- * une DESCRIPTION et un NOM. Si vous ne disposez pas par exemple du LIEN_MANPAGE, ​ 
- * vous pouvez indifféremment mettre la ligne vide ou pas.  
- * 
- */ 
-public class CommandArray { 
- protected static boolean DEBUG = true; 
- String nom = null; 
- String description = null; 
- String lien_synopsys = null; 
- LinkedList<​String>​ liens = new LinkedList<​String>​();​ 
- String lien_manpage = null; 
- String lien_forum = null; 
-  
- public CommandArray(String nom, String description){ 
- this(nom);​ 
- this.description= description;​ 
- } 
- private CommandArray(String nom){ 
- this.nom=nom;​ 
- } 
- 
- /** 
- * Cette méthode ouvre les fichiers et s'​assure de l'​absence d'​erreurs à l'​ouverture. 
- * Le travail réel de gestion du formatage est sous traité à la fonction performFormat 
- 
- * @param args le nom du fichier à traiter 
- */ 
- public static void main(String[] args) { 
- printLicense();​ 
- BufferedReader in; 
- BufferedWriter out; 
-  
- // check nombre arguments 
- if(args.length!=1){ 
- printUsage();​ 
- return; 
- } 
-  
- // check help 
- if(args[0].equals("​-h"​) || args[0].equals("​-help"​) || args[0].equals("​-u"​) || args[0].equals("​-usage"​)){ 
- printUsage();​ 
- return; 
- } 
-  
- // check ouverture fichier input 
- try { 
- in = new BufferedReader(new FileReader(args[0]));​ 
- } catch (FileNotFoundException e) { 
- println("​erreur:​ nom de fichier incorrect: "​+args[0]);​ 
- if(DEBUG) 
- e.printStackTrace();​ 
- return; 
- } 
-  
- // check ouverture fichier output 
- String outputFileName = args[0]+"​_format.txt";​ 
- try { 
- out = new BufferedWriter(new FileWriter(outputFileName));​ 
- } catch (IOException e) { 
- println("​erreur:​ impossible de créer le fichier d'​output:​ "​+outputFileName);​ 
- if(DEBUG) 
- e.printStackTrace();​ 
- return; 
- } 
-  
- //​exécution formatage 
- println("​formating content file: "​+args[0]+"​ to file "​+outputFileName+"​..."​);​ 
- try { 
- performFormat(in,​ out); 
- } catch (Exception e1) { 
- println("​Une erreur est survenue durant l'​exécution"​);​ 
- if(DEBUG) 
- e1.printStackTrace();​ 
- } 
- finally { 
- // fermeture des flux 
- try { 
- in.close();​ 
- out.close();​ 
- } catch (IOException e) { 
- println("​Warning:​ une erreur est survenue pendant la fermeture des fichiers"​);​ 
- if(DEBUG) 
- e.printStackTrace();​ 
- } 
- } 
- println("​Le programme s'est terminé sans erreurs"​);​ 
- } 
-  
- /** 
- * Lit le fichier source, génère la liste des commandes, effectue le formatage, écrit le fichier de destination 
- 
- * @param in le buffer vers le fichier d'​entrée 
- * @param out le buffer vers le fichier de sortie 
- * @throws IOException 
- * @throws ParseException 
- */ 
- public static void performFormat(BufferedReader in,​BufferedWriter out) throws IOException,​ ParseException{ 
- LinkedList<​CommandArray>​ commandListe = readFile(in);​ 
-  
-  
- //​vérifications d'​intégrité 
- if(!checkCommandListValidity(commandListe)) 
- return; 
-  
- /** 
- * A partir de maintenant on dispose d'une liste d'​objets ayant au moins un nom et une description probablement valides. 
- * Les urls sont forcément correctement constituées. 
- */ 
- String formatedLine = null; 
- for(int i=0;​i<​commandListe.size();​i++){ 
- formatedLine = makeFormattedLine(commandListe.get(i));​ 
- out.write(formatedLine+"​\n"​);​ 
- println(formatedLine);​ 
- } 
-  
-  
-  
- } 
- /​************************************************ 
- *           ​FONCTIONS DE FORMATAGE ​            * 
- ************************************************/​ 
-  
- /** 
- * Cette fonction crée le formatage pour une commande donnée 
- 
- * @param commandArray :  La commande à formatter 
- * @return ligne contenant le code formatée pour la commande donnée. 
- */ 
- public static String makeFormattedLine(CommandArray commandArray){ 
- StringBuilder result = new StringBuilder();​ 
- int i; 
- //String link = null; 
- result.append("​| "); 
- result.append(commandArray.description);​ 
- result.append("​ | "); 
- result.append(makeDocLinkString(commandArray.lien_synopsys,​commandArray.nom));​ 
- result.append("​ | "); 
- if(commandArray.liens!=null){ 
- for(i=0;​i<​commandArray.liens.size()-1;​i++) 
- result.append(makeUndiferrentiateLinkString(commandArray.liens.get(i),​null)+",​ "); 
- result.append(makeUndiferrentiateLinkString(commandArray.liens.get(i),​null));​ 
- } 
- result.append("​ | "); 
- result.append(makeExternLink(commandArray.lien_manpage,"​manpage"​));​ 
- result.append("​ | "); 
- result.append(makeExternLink(commandArray.lien_forum,"​forum"​));​ 
- result.append("​ |"); 
- 
- return result.toString();​ 
- } 
-  
- /** 
- * Appelle la méthode corespondante selon que le lien est interne ou externe à la documentation. 
- 
- * @param link lien à formatter 
- * @param nom du lien à formatter 
- * @return code correspondant au lien 
- */ 
- public static String makeUndiferrentiateLinkString(String link, String nom){ 
- if(link.indexOf("​http://​doc.ubuntu-fr.org"​)==-1) 
- return makeExternLink(link,​nom);​ 
- else 
- return makeDocLinkString(link,​nom);​ 
- } 
-  
-  
- /** 
- * Crée le formattage pour un lien interne à la documentation. ​ 
- * Si le nom n'est pas spécifié, un nom par défaut est généré. 
- 
- * @param link lien à formatter 
- * @param nom du lien à formatter 
- * @return code correspondant au lien 
- */ 
- public static String makeDocLinkString(String link, String nom){ 
- String result = null; 
- URL url = null; 
- String name = null; 
-  
- //si le champ correspondant n'a pas été renseigné 
- if(link==null) 
- return "";​ 
-  
- // devrait pas y avoir de problème 
- try {url = new URL(link);} catch (MalformedURLException e) {return null;} 
-  
- //gestion du nom (si le nom donné est invalide, construit un nom par défaut 
- if(nom!=null) 
- if(checkValidity(nom)) 
- name=nom;​ 
- if(name==null){ 
- name=url.getPath();​ 
- int slash = name.lastIndexOf("/"​);​ 
- if(slash!=-1){ 
- name=name.substring(slash+1);​ 
- } 
- } 
-  
- //gestion du chemin 
- String path = url.getPath();​ 
- char [] pathChar = path.toCharArray();​ 
- for(int i=0;​i<​pathChar.length;​i++) 
- if(pathChar[i]=='/'​) 
- pathChar[i]=':';​ 
- path = new String(pathChar);​ 
-  
- //gestion de l'​ancre 
- String ancre = url.getRef();​ 
- if(ancre==null) 
- ancre="";​ 
- if(ancre.indexOf('?'​)!=-1){ 
- ancre=ancre.substring(0,​ ancre.indexOf('?'​)-1);​ 
- } 
-  
- //​construction de la représentation de la doc: 
- result = "​[["​+path;​ 
- if(!ancre.equals(""​)) 
- result+="#"​+ancre;​ 
- result+="​|"​+name+"​]]";​ 
-  
- return result; 
- } 
-  
- /** 
- * Crée le formattage pour un lien externe à la documentation. 
- * Si le nom est omis, un nom par défaut est généré. 
- 
- * @param link lien à formatter 
- * @param nom du lien à formatter 
- * @return code correspondant au lien 
- */ 
- public static String makeExternLink(String link,String nom){ 
- URL url = null; 
- String name = null; 
-  
- //gestion du nom (si le nom donné est invalide, construit un nom par défaut 
- if(nom!=null) 
- if(checkValidity(nom)) 
- name=nom;​ 
- if(name==null){ 
- try {url = new URL(link);} catch (MalformedURLException e) {return "";​} 
- name=url.getPath();​ 
-  
- //​élimine le chemin d'​accès 
- int slash = name.lastIndexOf("/"​);​ 
- if(slash!=-1){ 
- name=name.substring(slash+1);​ 
- } 
-  
- //​élimine l'​extension 
- int dot = name.lastIndexOf("​."​);​ 
- if(dot>​1){ 
- name=name.substring(0,​dot);​ 
- } 
- } 
-  
-  
- //si le champ correspondant n'a pas été renseigné 
- if(link==null) 
- return "";​ 
- else 
- return "​[["​+link+"​|"​+name+"​]]";​ 
- } 
-  
-  
- /​************************************************ 
- *    FONCTIONS DE VERIFICATION DE VALIDITE ​    * 
- ************************************************/​ 
-  
- /** 
- * Vérifie l'​ensemble d'une liste de commandes pour voir si elles sont acceptables et s'il n'y a pas d'​erreurs. 
- * En fait cette fonction fait plus qu'un test, en effet les objets invalides sont retirés de la liste. 
- 
- * @param commandListe 
- * @return vrai si à l'​issue du test la liste contient au moins une commande valide, non sinon 
- */ 
- public static boolean checkCommandListValidity(LinkedList<​CommandArray>​ commandListe){ 
- boolean ​ validity =  true; 
- CommandArray commandArray=null;​ 
-  
- //taille 
- if(commandListe.size()==0){ 
- println("​erreur,​ pas d'​objet valide trouvé."​);​ 
- return false; 
- } 
-  
- //​validité objets 
- for(int i=0;​i<​commandListe.size();​i++){ 
- commandArray=commandListe.get(i);​ 
- if(!checkCommandValidity(commandArray)){ 
- debug("​performFormat","​warning,​ lien_forum {"​+commandArray.lien_forum+"​} incorrect >> Réinitialisé"​);​ 
- commandListe.remove(commandArray);​ 
- } 
- } 
-  
- //taille 
- if(commandListe.size()==0){ 
- println("​erreur,​ pas d'​objet valide trouvé après check de validité."​);​ 
- return false; 
- } 
-  
- return validity; 
- } 
-  
- /** 
- * Vérifie la validité d'une commande simple. La présence d'un nom et d'une description valide sont obligatoires pour avoir un résultat true. 
- * Les autres champs sont testés aussi, et en cas de problèmes, réinitialisés. 
- 
- * @param commandArray 
- * @return 
- */ 
- public static boolean checkCommandValidity(CommandArray commandArray){ 
- boolean result = true; 
- String lien = null; 
- if(!checkValidity(commandArray.nom)){ 
- result = false; 
- debug("​checkCommandValidity","​erreur,​ nom {"​+commandArray.nom+"​} incorrect"​);​ 
- } 
- if(!checkValidity(commandArray.description)){ 
- result = false; 
- debug("​checkCommandValidity","​erreur,​ description {"​+commandArray.description+"​} incorrect"​);​ 
- } 
- if(!checkLinkValidity(commandArray.lien_synopsys)){ 
- commandArray.lien_synopsys=null;​ 
- debug("​checkCommandValidity","​warning,​ lien_synopsys {"​+commandArray.lien_synopsys+"​} incorrect >> Réinitialisé"​);​ 
- } 
- if(!checkLinkValidity(commandArray.lien_manpage)){ 
- commandArray.lien_manpage=null;​ 
- debug("​checkCommandValidity","​warning,​ lien_manpage {"​+commandArray.lien_manpage+"​} incorrect >> Réinitialisé"​);​ 
- } 
- if(!checkLinkValidity(commandArray.lien_forum)){ 
- commandArray.lien_forum=null;​ 
- debug("​checkCommandValidity","​warning,​ lien_forum {"​+commandArray.lien_forum+"​} incorrect >> Réinitialisé"​);​ 
- } 
- if(commandArray.liens.size()==0) 
- commandArray.liens = null; 
- else { 
- for(int i=0;​i<​commandArray.liens.size();​i++){ 
- lien = commandArray.liens.get(i);​ 
- if(!checkLinkValidity(lien)){ 
- debug("​checkCommandValidity","​warning,​ lien {"​+lien+"​} incorrect >> Réinitialisé"​);​ 
- commandArray.liens.remove(lien);​ 
- } 
- } 
- if(commandArray.liens.size()==0) 
- commandArray.liens = null; 
- } 
- return result; 
- } 
-  
- /** 
- * Teste la validité d'une String suivant les critèrs suivants: 
- * Ne doit pas être nulle, ne doit pas être vide, mono caractère ou constituée seulement d'​espaces. 
- * A noter qu'on ne s'est pas donner la peine de tester proprement les espaces, ​ 
- * si vous voulez faire planter le programme mettez en un grand nombre. 
- 
- * @param arg la chaine à tester 
- * @return un booléen qui indique si la chaine est correcte ou non. 
- */ 
- public static boolean checkValidity(String arg){ 
- if(arg==null) 
- return false; 
- //pas envie de me prendre la tête à faire "si ya que des espaces"​ ;) 
- if(arg.equals(""​) || arg.equals("​ ") || arg.equals(" ​ ") || arg.equals(" ​  "​)) 
- return false; 
- if(arg.length()<​2) 
- return false; 
- return true; 
- } 
-  
- /** 
- * Teste la validité d'un lien de la manière suivante: 
- * Construit un objet URL basé sur ce lien. S'il n'y a pas de MalformedURLException,​ c'est bon. 
- 
- * @param arg le lien à tester ​ 
- * @return un booléen qui indique si le lien est correct ou non. 
- */ 
- public static boolean checkLinkValidity(String arg){ 
- @SuppressWarnings("​unused"​) 
- URL url = null; 
- try { 
- url = new URL(arg); 
- } catch (MalformedURLException e) { 
- return false; 
- } 
- return true; 
- } 
-  
- /​************************************************ 
- *    FONCTIONS DE LECTURE DU FICHIER SOURCE ​   * 
- ************************************************/​ 
-  
- 
- /** 
- * Crée la liste des commandes à formater à partir du fichie source 
- * @param in 
- * @return LinkedList<​CommandArray>​ 
- * @throws IOException 
- * @throws ParseException 
- */ 
- public static LinkedList<​CommandArray>​ readFile(BufferedReader in) throws IOException,​ ParseException{ 
- LinkedList<​CommandArray>​ commandListe = new LinkedList<​CommandArray>​();​ 
-  
-  
- /**** 
- * Initialisation. Pour l'​initialisation on fait tous les tests de validité possibles, on sera moins strict par la suite. 
- */ 
- String [] firstValidLine = searchForValidLine(in);​ 
- if(firstValidLine==null) 
- throw new CommandArray.ParseException("​Erreur,​ aucune ligne valide trouvée dans le fichier."​);​ 
- if(!firstValidLine[0].equals("​NOM"​)) 
- throw new CommandArray.ParseException("​Erreur,​ le NOM doit venir en premier " + 
- "​(vérifiez si vous n'avez pas une ligne comportant un ':'​ précédent " + 
- "​votre première ligne commençant par NOM"); 
- String [] secondValidLine = searchForValidLine(in);​ 
- if(!secondValidLine[0].equals("​DESCRIPTION"​)) 
- throw new CommandArray.ParseException("​Erreur,​ la DESCRIPTION doit venir juste" + 
- " après le NOM"); 
-  
- if(!checkValidity(firstValidLine[1])) 
- throw new CommandArray.ParseException("​Erreur,​ nom invalide: {"​+firstValidLine[1]+"​}"​);​ 
- if(!checkValidity(secondValidLine[1])) 
- throw new CommandArray.ParseException("​Erreur,​ description invalide: {"​+firstValidLine[1]+"​}"​);​ 
-  
- CommandArray commandArray = new CommandArray(firstValidLine[1],​secondValidLine[1]);​ 
-  
- /******* 
- * Boucle. On ne se soucie pas trop des éventuels problèmes d'​objet mal rempli, ce sera checké en aval 
- */ 
- String [] line = null; 
- String arg = null, key = null; 
- while((line=searchForValidLine(in))!=null){ 
- key = line[0]; 
- arg = line[1]; 
- if(key.equals("​NOM"​)){ 
- commandListe.add(commandArray);​ 
- commandArray=new CommandArray(arg);​ 
- } 
- if(key.equals("​DESCRIPTION"​)) 
- commandArray.description=arg;​ 
- if(key.equals("​LIEN_SYNOPSIS"​)) 
- commandArray.lien_synopsys=arg;​ 
- if(key.equals("​LIEN"​)) 
- commandArray.liens.add(arg);​ 
- if(key.equals("​LIEN_MANPAGE"​)) 
- commandArray.lien_manpage=arg;​ 
- if(key.equals("​LIEN_FORUM"​)) 
- commandArray.lien_forum=arg;​ 
-  
- } 
- commandListe.add(commandArray);​ 
-  
-  
- return commandListe;​ 
- } 
-  
- /** 
- * Retrouve la ligne valide suivante dans le fichier source. 
- * Une ligne est considérée comme valide si elle comporte un ':' ​ 
- * @param in 
- * @return ligne valide 
- * @throws IOException 
- */ 
- public static String [] searchForValidLine(BufferedReader in) throws IOException{ 
- String line = null; 
- //String key = null; 
- String [] splitedLine = new String[2]; 
- int doubledotindex=-1;​ 
- while((line=in.readLine())!=null){ 
- doubledotindex=line.indexOf(':'​);​ 
- if(doubledotindex!=-1) 
- { 
- splitedLine[0]=line.substring(0,​ doubledotindex);​ 
- if(doubledotindex<​line.length()) 
- splitedLine[1]=line.substring(doubledotindex+1);​ 
- else 
- splitedLine[1]="";​ 
- /​*splitedLine =  line.split(":"​);​ 
- if(splitedLine.length==2) 
- return splitedLine;​ 
- else { 
- key = splitedLine[0];​ 
- splitedLine=new String[2]; 
- splitedLine[0]=key;​ 
- splitedLine[1]="";​ 
- return splitedLine;​ 
- }*/ 
- return splitedLine;​ 
- } 
- } 
- return null; 
- } 
-  
- 
- /​******************************* 
- *    println & debug stuff    * 
- *******************************/​ 
-    public static void println(String s){ 
-    System.out.println(s);​ 
-    } 
-    public static void println(String [] s){ 
-    for(int i=0;​i<​s.length;​i++) 
-    System.out.println(s[i]);​ 
-    } 
-    ​ 
-    public static void debug(String origin,​String s){ 
-    if (DEBUG) { 
- System.out.println("​DEBUG(FormatArray."​+origin+"​):​ "+s); 
- } 
-    } 
-    public static void debug(String origin,​String [] s){ 
-    if (DEBUG) { 
- for (int i = 0; i < s.length; i++) 
- System.out.println("​DEBUG(FormatArray."​+origin+"​):​ "​+s[i]);​ 
- } 
-    } 
-    public static void printUsage(){ 
-    println("​***************************************************************************"​);​ 
-    println("​* ​                          ​FormatArray ​                                  ​*"​);​ 
-    println("​***************************************************************************"​);​ 
-    println(""​);​ 
-    println("​génère le formatage correspondant à l'​ensemble des commandes fournies dans le "); 
-    println("​fichier passé en paramètre:"​);​ 
-    println(""​);​ 
-    println("​paramètre obligatoire:​ nom du fichier"​);​ 
-    println("​le résultat est stocké dans le fichier NOM_FICHIER_format.txt"​);​ 
-    println("​le fichier source doit contenir au moins une fois le motif suivant:"​);​ 
-    println(""​);​ 
-    println("​NOM:"​);​ 
-    println("​DESCRIPTION:"​);​ 
-    println("​LIEN_SYNOPSIS:"​);​ 
-    println("​LIEN:"​);​ 
-    println("​LIEN_MANPAGE:"​);​ 
-    println("​LIEN_FORUM:"​);​ 
-    println(""​);​ 
-    println("​Le nombre de LIEN est indifférent. Une entrée valide doit contenir au moins"​);​ 
-    println("​une DESCRIPTION et un NOM. Si vous ne disposez pas par exemple du LIEN_MANPAGE,"​);​ 
-    println("​vous pouvez indifféremment mettre la ligne vide ou pas."​);​ 
-    } 
-    ​ 
-    public static void printLicense(){ 
-    println("​FormatArray ​ Copyright (C) 2009 Aldian (Administrator of Ubuntu French Documentation)"​);​ 
-    println("​This program comes with ABSOLUTELY NO WARRANTY; for details visit site http://​www.gnu.org/​licenses/​gpl.html."​);​ 
-    println("​This is free software, and you are welcome to redistribute it"); 
-    println("​under certain conditions; visit site http://​www.gnu.org/​licenses/​gpl.html for details."​);​ 
-    println(""​);​ 
-    } 
-    ​ 
-    /** 
-     * @author aldian 
-     * Exception dédiée aux problèmes survenus dans l'​interprétation du contenu du fichier source. 
-     */ 
-    static class ParseException extends Exception { 
- private static final long serialVersionUID = -1172968771252448754L;​ 
- 
- public ParseException(String erreur){ 
-    super (erreur); 
-    } 
-    } 
- 
-} 
-</​code>​ 
- 
  
  • utilisateurs/aldian/programme_formatage_portail_lignes_commandes.txt
  • Dernière modification: Le 28/04/2011, 22:55
  • (modification externe)