Frequently Asked Question

[Streamer.bot] Comment découper une chaîne de caractère en deux grâce à un séparateur (d'un ou plusieurs caractères) ?
Last Updated a year ago

Contexte

Lorsqu'on utilise Streamer.bot, plusieurs fonctions dites "inline" sont disponibles au sein des champs qui acceptent des variables. On peut en trouver le détail dans la documentation officielle : https://docs.streamer.bot/guide/variables#inline-functions et il est par exemple possible de faire des opérations mathématiques simples. Exemple "$math(%variable% * 10)$" permet de récupérer le résultat de l'opération multipliant la variable fournie par 10. 

Problème

Il y a bien quelques fonctions inline consacrées aux chaînes de caractères, comme "$length(%rawInput%)$" qui permet de connaître la longueur du texte présent dans la variable fournie. Toutefois, il n'y a pas de méthode simple pour séparer différents éléments au sein d'une chaine de caractères en précisant un séparateur.

Solution

J'ai créé une sub action spécifique codée en C# intitulée "Découpage de la chaine %chaineADecouper% avec le séparateur %separateur%" qui permet en fournissant une %chaineADecouper% et en précisant un %separateur% (qui peut être un seul caractère ou plusieurs) d'obtenir facilement %partieGauche% et %partieDroite%".

Par exemple :

  • %chaineADecouper% : "Je suis un titre Chapitre : Je suis un nom de chapitre"
  • %separateur% : "Chapitre :"
  • %partieGauche% donnera "Je suis un titre"
  • %partieDroite% donnera "Je suis un nom de chapitre"

Mise en œuvre de la solution

Directement via l'import de Streamer.bot

U0JBRR+LCAAAAAAABADNWclu40gSvTfQ/0B4YEwPpuhO7mQBfbBkLZRt2dqopV2H3EixTJEqLrblRv3LHKcu8xP+sQlSki1qqS4b3YANCxIzgpGZ70VkRJB//PyTIBzNeIqPPgp/5BdwGeIZh8ujy4VQe5hHcXr0YSXBWTqN4lwWEsIDH8fsWXbH48SPwlwonaAT9CxgPKGxP09Xwk1jUTcLT+lKEmZBsJbN/NCfZTPn2WYuzGVfC40jhksrxoWNBEZ+X44Ia1Eh9lk+MXEtw7CoJhJLo6KKTC5aMiairFMmU8pcC5H14orbvmQ84+WFFeM8xCTguc00znhJ8kCDjPF6HM2afpJG8QKUXBwkh7Suecj80NuntWbh7OkbjbI59rjAuBBggU6xH3LhePl9esZzMY+PBXzHqRBwIXn6NscxTnkWC8cJX/8+Lm3Oi+Gu3P7vFSAy/CTUo3CJopClfuCn2I95UroFB/d4kQBl+5Yb45BFs2cyd+QUzGdxzMN0nzSNfc8DsjcZ3GJx6WQ49nPwkxfyN6RbiBSuKEm/GkjVNzey0n5BJlf89ais8HXrhpUTUc2gCpNkUcWmLqqaa4kWQUzElDFLsxhSJLQ911G6mOdUGkjelhx0pRdHSdae/WlT+vXl4lOJo91I2Ifj2rl2lnogWJ/lMXc5kEj5zhSFuPrx5mbogyfcJzc3lz6NoyRy05N2rX9zU49h0vsovtXVm5s7Fc4IBdCybm5mCY3iwCcnLAi2WPi0PT9ZpLwasWLxbNSekxn1BkrwyBpOenWPzmnT8Ukj+Gw32sl41H60a+1OrxZkMJZNOuicg45dPfXsZkUazx7m40XFJ7KV2DVHnQzbEmsMovPOWidpV334ri4/FwvT68uqR5Or+Vhx7u/16WLSqyST0aV3rwcJfNLJUEN0Ucng9+cJzD8eBguQl+x0pIp9EXQXfMACVqsvJo8Pj6zZyvfy7/Nq6zNu1OG3U+k2nM8E5pmMbP+iYUmsWlnreWN5OsVDLegMusFYtiTacBbn/eQ18zxORpUpndXRZOQsbP/hjo06HlW6C7Ab2s12QBv1xXjUDdjInl+tcVt+9uJClLOzL81WYDce4NM/+zJsg83KdCIPSvrrOYYS8vI5WPPSu+5V9u07GyiVBI86EYwrsCZEZ8CjlDLgxqOycz8etabAvUT9inVRrfSX+2N92niYs5p1zxrBHQkvs/7Myia9W+OsEz2vwz4t7enuYlG5Jn7lsSXXH6ni5Nw+sB6bk2olaym33rhX8fHQyexmXZr0Thd2Q7qjs3YwHjlqyW4jmNnVab428AXtEnwiZA3Pu+4j79K/LWHBy7iW8AEfndKwO58M2JQN2xHMaa3GHoePFXa1WGI/yDFsBID5s140Hk2mJOx4pDHwqHk13+SytNbi8+JXdGWr22zdYdC3z9Yctcmlgwy7at7Z9dW6epVbOrPmEDPeeaN+D3ERge8nMP4I/r/BTXnPe7Av+VEeO8AzKvyoeXH2ZdSWSLM7Bf+/HQ+1R7vRDWAe8F0mEeAj959JI3ikDSvDw1YRj+NRZQHxCbqOmttjo+6cgO1JcwCxY91OOrvzL+OlvYwVxSliGeKk4BF4bwLP4KMDH/xse2w7Pn7EXm2F3aa99diWvYpV9i8noVsxtc+Pfnw/p37XafW6jtOz/a0YWc5/Nqh52UB2UGfUCtlQCsC3Ijtc+2d3QeQATXp2Yldb9UHQqjuO7W+fR27n8BlCZw5ioxbEVnfBhoPnNeT3uJ3ffttJRPMYsvxs7gd8Tz2xSmUBXvRSHO+rOAqNBCqmLk+yIO1Hzqqy+J5uSWs3Ny4rBESRYjKuiqZuMigzDVe0FGaIsiW7XFIUy8J859Z77nvTfJ1QOB+oHqz8b1u2ruK2StRC9v3aApI0fwCZXqoqPny/+AqKevjoggvx07ccN5zmRSnlacqFaP70DeopqBwEFoUhj7FwDBVW6vMGzuiUHws8XY+cxZGf8uMdHGgULPuLA+Cq1NJNy5RFSSYu1GAaEy1JdUXDJFCBqZwo5E3gSgj9Ddgab8C2ftWu9u2rtnBd617W+v3Tdl84q8F/9WoAQ8KgXROqzVO7nY8J1dPuabVf69Z6h6H8R72O4O8AooqGuEswF2UFaaJKDSSapquKrq4YWNd15BrWX43oLrs/hid6A56X4Jsxh94Ih6mA53MeCE//WXnsslj+IDAMXc+BfioLhR747WnsZTNoXj6sOrCn/4VFP0ahhaDp03+hV8rtpjEGv45f7dc6w7rFDFXEim6IqkQsEXMuia5BOSKmy10NvxcWlL+VhY1+9RABm6jDYe0nudHIdX1aULLR/r6aB01BWFKBB5ebRFQVUxNNS+MiNlSNyAQR1SDvhQf1DTzURrXqAM4L4QLOjquz2qsBUmRDVZGqiC6Ck0I1DQrHhYlFQ1FNk8tcgoT3XgDSfhygNMJJahc7lHbbdz9dZvzuZtIL/vmS8HZv4Q/5fo+uQiEikO/AQeHcWOY+wSvS4Z7k+KLCivz4Z9kSQ1D5JDvYrPs0Cq9xOi2Yh868BzGIZzKS1fVvHlei9OYmWV2ckCg9mYfeAfItKX9gpiuiJlPIvlTOn3soSKTEwjohSHGNXfR+iHxZfVv23VuqrfmXpDdEyBUJfA+nkQ9ny8fdpPCdNJsn2Xr9UNwQohOFmyKSFCqqBiRcrEGaNSRDlzSTGa75btLsXwDbgaeOr0GMI83QVFMRmQQltMpNUzRdoogWI4jpOlVkV3kviMlvQOzlMPm4dRS8GTGJUSRJWIRDGjoPiqGcIIolmhLUxpKmKdx4N2ez+dcg9qd9xPcRQ7qlKcS0RGJRBdoJpkDXJiGRY2bKXNNN2Xo3UWm9rVErMptAfZHxJImyROBwOc/btzwpQREG44LrQ+kFOS3NhVnof8l4XmsJvzDQy+uzu6dveWoS4NrFWfqv1xdWLnK5rGgiQrIEBS6TIHVormiqVLGIhbBuau8FaancZ7xc7HnS3sjnWj6eL7/tCAI8TzjbkK/FK4Nr/eVrppIJuH02wyErD95zkkT0lqc9Ht+t3pXsCqtBXm2Uhak/W+vnI6t3aC8v7CRpOcKLt32c5W+mivA4kU9WrOy+kSukqkh4ik/0o59/+vp/mFd0iUwcAAA=

Amélioration possible

Il pourrait être envisageable d'améliorer le concept afin de permettre l'extraction de plus de deux sous-chaînes (utilisation d'une ligne séparée par des virgules ou points virgules par exemple). 

Plus généralement, il pourrait être envisagé de concevoir toute une série de sub actions permettant d'émuler ce qu'on peut traditionnellement faire en programmation avec la notion de variable de type tableau : ajouter, supprimer, mélanger, explode, implode... Car Streamer.bot ne permet pas d'utiliser et d'avoir des fonctions associées à des variables tableau. Cela est très dommage car c'est fort utile dans une grande variété de situations.

Utilisation

Conçu notamment pour le streamer kafkalino sur Twitch qui avait besoin de fournir à des sub actions 2 informations d'un coup en un seul argument. Ledit argument est ensuite découpé en deux morceaux grâce à cette solution.

Please Wait!

Please wait... it will take a second!