4rno Posté(e) le 22 décembre 2017 Posté(e) le 22 décembre 2017 Bonjour ! Suite à une demande d'aide, j'ai réalisé une petite fonction qui peut s'avérer très utile ! Elle permet de découper un texte de façon relativement propre, en essayant de ne pas couper les mots si c'est possible. Tuske permet, en théorie, de faire la même chose, mais il semble que cette fonctionnalité soit cassée chez certains :/ Cette fonction ci permet donc de pallier à ce problème ! Voici le code: function splitText(text: text, dist: integer=50) :: texts: set {_text::*} to {_text} split by "" 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: add subtext of {_text} between index {_pos::%(loop-value)-1%}+1 and {_pos::%loop-value%} to {_return::*} return {_return::*} Pour l'utiliser, il suffit de faire splitText(<texte>,<Longueur maximale de chaque partie du texte>) Elle renverra alors une liste contenant le texte découpé. Son fonctionnement n'est pas très compliqué. La fonction va d'abord découper le texte demandé à chaque caractère (de cette façon, je peux vérifier à quoi correspond le 16e caractère par exemple). À partir de là, je vais tester si le caractère à la position de la découpe demandée est un espace. Si c'est le cas, c'est bon je sais que je peux split mon texte directement à cette position; sinon je vais diminuer de 1 ma position jusqu'à trouver un espace. Dans le cas où il y a une trèèsss looonnng mot, je teste par précaution si je ne suis pas retombé sur la position de mon split précédent. Alors là seulement je vais devoir découper le mot en 2. Je continue cette opération autant de fois que nécessaire pour que le nombre de caractères restants est plus petit que la longueur maximale autorisée. Voici un petit exemple : send splitText("Bonjour je suis un message de test, je vous en prie, testez moi !Je vais être découpé en plein de petits morceaux ^^", 30) [ATTACH=full]7208[/ATTACH] Ou en plus long (là je n'ai pas indiqué de longueur maximale, celle par défaut est de 50): send splitText("Bonjour je suis un message de test, je vous en prie, testez moi !Je vais être découpé en plein de petits morceaux ^^") [ATTACH=full]7209[/ATTACH] Bonne utilisation ! 4rno 1
eaglezlpha Posté(e) le 22 décembre 2017 Posté(e) le 22 décembre 2017 Vraiment Gg on peux mettre des couleurs genre "&4cc"
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant