Parsing forum

zarmas42 Messages postés 4 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 17 juin 2008 - 17 juin 2008 à 11:03
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 17 juin 2008 à 13:12
Bonjour,

Dans le cadre d'un projet je dois implémenter une sorte de forum :
L'utilisateur a une "text area" pour écrire son texte et il a la possibilité de mettre des balises afin de mettre son texte dans un certains style. Exactement la même chose que dans ce forum. Par exemple, texte en gras :
Mon texte en gras

Il peut utiliser plusieurs balises différentes et les mettre ensemble "Texte italique gras"

Je dois parser ces différentes lignes et écrire dans un fichier RTF avec le même style.
J'arrive sans problème à écrire dans le fichier RTF dans tous les styles que je souhaite.

Par contre mon problème est le parsing du texte et de son organisation. Je suis parti dans l'idée de faire un split sur la balise "" et de récupérer le texte pour l'écrire dans le style désiré.

Voici la fonction :

public static void CreateCellNoMargin(Document doc, String Text, String file_font) throws DocumentException {
        RtfFont rtfFont = DefaultBodyFont();
        RtfFont rtfFontBold = DefaultBodyFont();
        rtfFontBold.setStyle(RtfFont.BOLD);

        String[] phraseSplit = null;
        String[] phraseSplitTemp = null;
        Paragraph para = new Paragraph("", rtfFont);

        if (Text.lastIndexOf("") != -1) {
            phraseSplit = Text.split("");

            for (int cpt = 0; cpt < phraseSplit.length; cpt++) {
                if (!phraseSplit[cpt].equals("")) {
                    if (phraseSplit[cpt].lastIndexOf("") != -1) {
                        phraseSplitTemp = phraseSplit[cpt].split("");
                        for (int j = 0; j < phraseSplitTemp.length; j++) {
                            if (!phraseSplitTemp[j].equals("") && j == 0)
                                para.add(new Chunk(phraseSplitTemp[j], rtfFontBold));
                            else para.add(new Chunk(phraseSplitTemp[j], rtfFont));
                        }
                    }
                    else
                        para.add(new Chunk(phraseSplit[cpt], rtfFont));
                }
            }
        }
        else {
            para.add(new Chunk(Text, rtfFont));
        }
        doc.add(para);
    }

Cette fonction marche pour une balise "". Mais je pense pas que ce soit la bonne solution pour implémenter plusieurs balises ensemble.
Ca a été déjà fait puisque certains forum fonctionne de la même manière sauf que els recherches sous google .. ne donnent pas grand chose.

Donc je suis clairement preneur de liens ou d'idées afin d'implémenter ca!

Merci par avance !

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 juin 2008 à 13:12
Salut,

Va voir ma source de balisage de texte par exemple.
______________________________________
DarK Sidious
0
Rejoignez-nous