begin process at 2012 02 09 07:37:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CLASSE DE GESTION DE BBCODES V1.0 A

CLASSE DE GESTION DE BBCODES V1.0 A


 Information sur la source

 Description

Bon, c'est que la première version, il ne faudra donc pas m'en vouloir si elle n'est pas très complète. En effet, il me reste à résoudre le problème des balises imbriquées et des BBCodes spéciaux du genre [a href=adresse]Nom[/a]. Mais ce code sera régulièrement mis à jour en même temps que je dévelloppe mon applet de création et de prévisualisation de BBCodes.

Source

  • import java.util.ArrayList;
  • public class Source
  • {
  • // Balisaes autorisées
  • public static String[] Balises = {"h2", "em", "strong", "q", "blockquote", "cite","code", "ul", "li", "p"};
  • // Conteneur de la source sauvée
  • private StringBuffer SourceSauve = new StringBuffer(65000);
  • // Conteneur de la source courante
  • private StringBuffer SourceCourante = new StringBuffer(65000);
  • // Tableau des balises ouvertes
  • private ArrayList OBal = new ArrayList();
  • // Tableau des balises fermées
  • private ArrayList FBal = new ArrayList();
  • // Constructeur
  • public Source()
  • {
  • }
  • // METHODES DE RECUPERATION
  • // Récupération de la source
  • public String RecupSource()
  • {
  • return SourceCourante.toString();
  • }
  • // Récupération du nombre de balises ouvertes
  • public int RecupNOBal()
  • {
  • return OBal.size()-FBal.size();
  • }
  • // Récupération de la source convertie en xhtml
  • public String RecupXHtml()
  • {
  • StringBuffer SB = new StringBuffer(SourceCourante.toString());
  • int Nb=0;
  • while(Nb<SB.length())
  • {
  • if(SB.charAt(Nb)=='[')
  • {
  • SB.setCharAt(Nb,'<');
  • }
  • if(SB.charAt(Nb)==']')
  • {
  • SB.setCharAt(Nb,'>');
  • }
  • Nb++;
  • }
  • return SB.toString();
  • }
  • // METHODES DE SAUVEGARDE
  • // Methode de sauvegarde de la source
  • public boolean Sauver()
  • {
  • if(Verifier(SourceCourante))
  • {
  • SourceSauve.replace(0, SourceCourante.length(), SourceCourante.toString());
  • return true;
  • }
  • else
  • return false;
  • }
  • // Méthode de restauration de la source sauvegardée
  • public void Restaurer()
  • {
  • SourceCourante.replace(0, SourceCourante.length(), SourceSauve.toString());
  • }
  • // METHODES D'EDITION
  • public boolean DefSource(String S)
  • {
  • SourceCourante.replace(0, SourceCourante.length(), S);
  • if(S!="")
  • {
  • if(Verifier(SourceCourante)) { return true; } else { return false; }
  • }
  • else return true;
  • }
  • public void Ajouter(String S)
  • {
  • SourceCourante.append(S);
  • }
  • public void AjouterBalise(String B, boolean O)
  • {
  • if(O)
  • {
  • OBal.add(OBal.size(), B);
  • Ajouter("[" + B + "]");
  • }
  • else
  • {
  • FBal.add(FBal.size(), B);
  • Ajouter("[/" + B + "]");
  • }
  • }
  • // METHODES PRIVEES
  • boolean EstBalise(String S)
  • {
  • int i=0;
  • for(i=0; i<Balises.length; i++)
  • {
  • if(Balises[i].equals(S))
  • {
  • return true;
  • }
  • }
  • return false;
  • }
  • void RecupBalise(int pos, boolean O, StringBuffer S)
  • {
  • String var="";
  • if(O)
  • {
  • while((pos<S.length())&&(S.charAt(pos)!=']'))
  • {
  • var+=S.charAt(pos);
  • pos++;
  • }
  • if(EstBalise(var))
  • {
  • OBal.add(OBal.size(), var);
  • }
  • }
  • else
  • {
  • while((pos<S.length())&&(S.charAt(pos)!=']'))
  • {
  • var+=S.charAt(pos);
  • pos++;
  • }
  • if(EstBalise(var))
  • {
  • FBal.add(FBal.size(), var);
  • }
  • }
  • }
  • // Verification du code source
  • private boolean Verifier(StringBuffer S)
  • {
  • OBal.clear();
  • FBal.clear();
  • int Nb=0;
  • while(Nb<S.length())
  • {
  • if(S.charAt(Nb)=='[')
  • {
  • if(S.charAt(Nb+1)=='/')
  • {
  • RecupBalise(Nb+2,false,S);
  • }
  • else
  • {
  • RecupBalise(Nb+1,true,S);
  • }
  • }
  • Nb++;
  • }
  • if(OBal.size()==FBal.size())
  • {
  • int i;
  • for(i=0; i<OBal.size(); i++)
  • {
  • if(!OBal.get(i).equals(FBal.get(i)))
  • {
  • return false;
  • }
  • }
  • return true;
  • }
  • else
  • {
  • return false;
  • }
  • }
  • // Débuggage du code source
  • private boolean Debug(String S)
  • {
  • return false;
  • }
  • }
import java.util.ArrayList;

public class Source
{
  // Balisaes autorisées
  public static String[] Balises = {"h2", "em", "strong", "q", "blockquote", "cite","code", "ul", "li", "p"};
  // Conteneur de la source sauvée
  private StringBuffer SourceSauve = new StringBuffer(65000);
  // Conteneur de la source courante
  private StringBuffer SourceCourante = new StringBuffer(65000);
  // Tableau des balises ouvertes
  private ArrayList OBal = new ArrayList();
  // Tableau des balises fermées
  private ArrayList FBal = new ArrayList();
  // Constructeur
  public Source()
  {

  }
  // METHODES DE RECUPERATION
  // Récupération de la source
  public String RecupSource()
  {
    return SourceCourante.toString();
  }
  // Récupération du nombre de balises ouvertes
  public int RecupNOBal()
  {
    return OBal.size()-FBal.size();
  }
  // Récupération de la source convertie en xhtml
  public String RecupXHtml()
  {
    StringBuffer SB = new StringBuffer(SourceCourante.toString());
    int Nb=0;
    while(Nb<SB.length())
    {
      if(SB.charAt(Nb)=='[')
      {
        SB.setCharAt(Nb,'<');
      }
      if(SB.charAt(Nb)==']')
      {
        SB.setCharAt(Nb,'>');
      }
      Nb++;
    }
    return SB.toString();
  }
  // METHODES DE SAUVEGARDE
  // Methode de sauvegarde de la source
  public boolean Sauver()
  {
    if(Verifier(SourceCourante))
    {
    SourceSauve.replace(0, SourceCourante.length(), SourceCourante.toString());
      return true;
    }
    else
      return false;
  }
  // Méthode de restauration de la source sauvegardée
  public void Restaurer()
  {
    SourceCourante.replace(0, SourceCourante.length(), SourceSauve.toString());
  }
  // METHODES D'EDITION
  public boolean DefSource(String S)
  {
    SourceCourante.replace(0, SourceCourante.length(), S);
    if(S!="")
    {
    if(Verifier(SourceCourante)) { return true; } else { return false; }
    }
    else return true;
  }
  public void Ajouter(String S)
  {
    SourceCourante.append(S);
  }
  public void AjouterBalise(String B, boolean O)
  {
    if(O)
    {
      OBal.add(OBal.size(), B);
      Ajouter("[" + B + "]");
    }
    else
    {
      FBal.add(FBal.size(), B);
      Ajouter("[/" + B + "]");
    }
  }
  // METHODES PRIVEES
  boolean EstBalise(String S)
  {
    int i=0;
    for(i=0; i<Balises.length; i++)
    {
      if(Balises[i].equals(S))
      {
        return true;
      }
    }
    return false;
  }
  void RecupBalise(int pos, boolean O, StringBuffer S)
  {
    String var="";
    if(O)
    {
      while((pos<S.length())&&(S.charAt(pos)!=']'))
      {
        var+=S.charAt(pos);
        pos++;
      }
      if(EstBalise(var))
      {
        OBal.add(OBal.size(), var);
      }
    }
    else
    {
      while((pos<S.length())&&(S.charAt(pos)!=']'))
      {
        var+=S.charAt(pos);
        pos++;
      }
      if(EstBalise(var))
      {
        FBal.add(FBal.size(), var);
      }
    }
  }
  // Verification du code source
  private boolean Verifier(StringBuffer S)
  {
    OBal.clear();
    FBal.clear();
   int Nb=0;
   while(Nb<S.length())
   {
     if(S.charAt(Nb)=='[')
     {
      if(S.charAt(Nb+1)=='/')
       {
         RecupBalise(Nb+2,false,S);
       }
       else
       {
         RecupBalise(Nb+1,true,S);
       }
     }
     Nb++;
   }
   if(OBal.size()==FBal.size())
   {
     int i;
     for(i=0; i<OBal.size(); i++)
     {
       if(!OBal.get(i).equals(FBal.get(i)))
       {
       return false;
       }
     }
    return true;
   }
   else
   {
   return false;
   }
  }
  // Débuggage du code source
  private boolean Debug(String S)
  {
    return false;
  }
}

 Conclusion

Voilà, laissez vos commentaires et donnez moi des conseils précieux pour optimiser le code, je m'en inspirerai pour mes prochaines versions.


 Sources de la même categorie

Source avec Zip Source avec une capture COMPLÉTION AUTOMATIQUE par Julien39
Source avec Zip Source avec une capture [JOGL] ANIMATION 3D DANS UN BOUTON par loloof64
Source avec Zip CALCULATRICE BIEN FAITE (VERSION SIMPLIFIÉE) par Julien39
Source avec une capture YNOT, UN NOUVEAU LANGAGE DE SCRIPT ÉCRIT EN JAVA. par apmneo7114
Source avec Zip KIT DE FICHIERS DE PROGRAMMATION par edouard333

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales