BBCode trop volumineux, comment le réduire?

Signaler
Messages postés
19
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
27 mars 2008
-
Messages postés
19
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
27 mars 2008
-
Bonjour,

Mon problème c'est que j'ai du BBCode (par un programme externe)
et il me donne des doublons qui pourraient être remplacés et prendre
beaucoup moins de poid et moins compliqué!

exemple :
[c=#000000]a/c[c=#000000]b/c[c=#000000]c/c[c=#000000]d/c

pourrait donner :
[c=#000000]abcd/c

Je n'arrive pas à trouver une autre technique que le replace
et y faut que je connaissent en avance le caractère qui est concerné par la balise
et je réduit que deux par deux ou trois par trois avec cette technique...
bref la galère... Si quelqu'un peut m'aider, déjà plusieurs soirs que je suis dessus sans trouver.

Merci d'avance!

TdP

5 réponses

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonsoir à tous,

Peut-être en passant par 2 tableaux.

var = "[c=#000000]a/c[c=#000000]b/c[c=#000000]c/c[c=#000000]d/c"

test1 = Split(var,"]")
For i=1 To UBound(test1) Step 2
    test2 = Split(test1(i),"[")
    list = list & test2(0)
Next
MsgBox list,,"list"

jean-marc
Messages postés
19
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
27 mars 2008

Le problème c'est que la dans le résultat ya plus aucune balise

et c'est pas le but. Ce que je veux c'est juste gagner d'la place...

genre :

[c=#000000]a/c[c=#000000]b/c[c=#000000]c/c

je voudrais qu'il détécte les même balise avec les même couleurs et qu'il le remplace commme ceci :

[c=#000000]abc/c

J'espère avoir était plus clair.

Merci.

TdP
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Re,

var = "[c=#000000]a/c[c=#000000]b/c[c=#000000]c/c[c=#000010]d/c[c=#000010]e/c[c=#000000]f/c"

devant donc retourner     newvar = "[c=#000000]abc/c[c=#000010]de/c[c=#000000]f/c"
l'utilisation de l'objet Dictionary me semble indiquée.

jean-marc
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Pour indication

var = "[c=#000000]a/c[c=#000000]b/c[c=#000000]c/c[c=#000010]d/c[c=#000010]e/c[c=#000000]f/c"

test1 = Split(var,"]")
For i=1 To UBound(test1) Step 2
    test2 = Split(test1(i),"[")
    MsgBox test1(i-1) & "]" &vbCrLf& test2(0) &vbCrLf& test1(i+1) & "]"
Next

jean-marc
Messages postés
19
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
27 mars 2008

Heu bah désolé mais je sais pas...
si quelqu'un d'autre à une autre solution valable...

Merci...

TdP