Aller au contenu
  • 0

Retour à la ligne automatique


Question

Posté(e)

Salutations à tous !

 

J'ai réalisé une fonction qui me permet de faire un retour à la ligne automatiquement sur un texte, selon la quantité de caractères. Avec TuSke, c'était censé être simple, puisqu'il existe la syntaxe suivante:

set {_text::*} to split {_text} by {_number} characters

Ainsi, le texte est découpé en morceau qui ne dépassent pas, dans mon cas, 50 caractères, prenant en compte chaque mot et ne coupant pas au travers d'eux.

 

Or, cet effet ne fonctionne pas correctement, puisque sur certaines phrases, il est possible que deux mots soient collés entre eux... Comme celle-ci : "Salutation les amis ! J'ai un très long discours à faire. Ceci est un nouveau paragraphe, bien évidemment ! Mais la phrase promet d'être longue et fastidieuse car il faut vérifier tout ça correctement !"

 

"longue et" devient alors "longueet".

 

Quelqu'un aurait une petite idée de comment découper un texte selon une quantité de caractères, tout en remettant le code couleur sur la partie suivante, et sans utiliser d'addons exotiques ?

 

Merci pour votre aide !

Des bisous <3

1 réponse à cette question

Messages recommandés

  • 0
Posté(e)

@Arno a suggéré un script pour réaliser ce que je recherchais ! Voici donc la solution !

 

command /découper <integer> <text>:
    trigger:
        set {_text} to arg-2
        set {_text::*} to {_text} split by ""
        set {_dist} to arg-1
        set {_pos} to {_dist}
        set {_ok} to false
        while {_ok} is not true:
            set {_posok} to false
            while {_posok} is not true:
                if {_text::%{_pos}%} is " ":
                    set {_posok} to true
                else:
                    remove 1 from {_pos}
                set {_c} to (amount of {_pos::*})
                if {_pos} is {_pos::%{_c}%}:
                    set {_pos} to {_pos::%{_c}%}+{_dist}
                    set {_posok} to true
                if {_pos} is 1:
                    set {_pos} to {_pos::%{_c}%}+{_dist}
                    set {_posok} to true
            add {_pos} to {_pos::*}
            set {_pos} to {_pos}+{_dist}+1
            if {_pos} > amount of {_text::*}:
                set {_ok} to true
                add amount of {_text::*} to {_pos::*}
        set {_pos::0} to 0
        loop (amount of {_pos::*}) times:
            broadcast subtext of {_text} between index {_pos::%(loop-value)-1%}+1 and {_pos::%loop-value%}

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.