package Parser; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.ListModel; /*** * Version v1.0 04-2006 * @author Rodrigues Céline THALES IS */ public class ParserIni { public String fichierIni; public ArrayList list; public String file; public String key; public String session; public String value; public String erreur =""; public ParserIni() { list = new ArrayList(); } /*** * The function existList return true if the map already exist in the list * * @param map * @return boolean */ public boolean existList(HashMap map){ for(int i = 0; i0){ String l = ligne; l= l.substring(0,1); /** * toutes lignes commencant par un ; est un commentaire */ if(!(l.equals(";"))){ /** * Si le premier caractere de la ligne est [ alors c'est un section et on recupere dans une variable id_section son nom */ if(l.equals("[")){ String lis; lis = ligne; System.out.println("lis _"+lis); setSession(lis); id_session =1; } String sp[]; /** * Si la ligne contient un = alors on defini une key et sa valeur */ sp = ligne.split("="); if(!(sp[0] == ligne)){ setKey(sp[0]); setValue(sp[1]); String sTmp; s = s.trim(); sTmp = "["+s+"]"; file = file.trim(); f = f.trim(); session = session.trim(); k = k.trim(); key = key.trim(); if(f.equals(file) && sTmp.equals(session) && k.equals(key)){ /** * si les valeur passer en parametre de la fonction sont egales a celles trouver dans le fichier alors on insere dans un hashMap ces valeurs et on les ajoutes a la list */ id_key = 1; listTmp.put("File",file); listTmp.put("Key",key); value = value.trim(); listTmp.put("Value",value); listTmp.put("Session",s); listTmp.put("Action","0"); if(!existList(listTmp)){ list.add(listTmp); } } } } } } /** * Si id_key = 0 cela signifie que la section n'existe pas dans le fichier */ if(id_key == 0){ erreur += donnerHeure()+" The key "+k+" doesn't exist in the section "+s+" of the file "+f+"\n"; } /** * Si id_session = 0 cela signifie que la */ if(id_session == 0){ erreur += donnerHeure()+" The section " + s +" doesn't exist in the file "+f+"\n"; } lecteurAvecBuffer.close(); }catch(FileNotFoundException exc){ Calendar c = Calendar.getInstance(Locale.FRANCE); erreur += donnerHeure()+" ERROR of opening of the file : " +f +"\n"; } } public String getFichierIni() { return fichierIni; } public void setFichierIni(String fichierIni) { this.fichierIni = fichierIni.trim();; } public ArrayList getList() { return list; } public void setList(ArrayList list) { this.list = list; } public String getFile() { return file; } public void setFile(String file) { this.file = file.trim(); } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getSession() { return session; } public void setSession(String session) { this.session = session; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public static void main(String[] argv) throws IOException { // ParserIni p = new ParserIni("Maintenance.ini"); } public String getErreur() { return erreur; } public void setErreur(String erreur) { this.erreur = erreur; } public String donnerHeure() { Calendar now = Calendar.getInstance(); int hh = now.get(Calendar.HOUR_OF_DAY); int mm = now.get(Calendar.MINUTE); int ss = now.get(Calendar.SECOND); int mois = now.get(Calendar.MONTH) + 1; int jour= now.get(Calendar.DAY_OF_MONTH); int annee = now.get(Calendar.YEAR); return (jour+"/"+mois+"/" +annee+ " "+ hh+":"+mm+":"+ss ); } }