# Introduction au Lua/Fonctions Texte

Un module Lua-Scribunto pour Mediawiki, est une page de l'espace de nom "Module" qui utilise une table comme variable locale pour stocker ses fonctions et variables mais aussi pour renvoyer la réponse à la fin du processus.
Le chapitre bibliothèques Lua, étudie les fonctions intégrées au langage et communément regroupées en librairies ou bibliothèques. Cette leçon vous apprendra comment utiliser les fonctions de la librairie de manipulation de chaînes Lua, dans vos scripts.

## Prérequis

Cette leçon suppose que vous ayez assimilé la leçon Tables.

## Utiliser les fonctions de manipulation de chaines de caractères

* Accéder au Module:Sandbox.
* Supprimer le code existant.
* Ajouter le code suivant et enregistrer la page:

## Tester votre nouveau script

* Rendez-vous sur "votre page de test".
* Ajouter le code suivant et enregistrer la page:

### Le résultat doit correspondre à ceci
   #### byte

       string.byte('A') is 65

   #### char

       string.char(65) is A

   #### find

       string.find('that', 'at') is 3

   #### format

       string.format('%.2f', 0) is 0.00

   #### gmatch

       string.gmatch('this is a test', 't%a+') is this, test,

   #### gsub

       string.gsub('This is a test', '%s', '-') is This-is-a-test

   #### len

       string.len('len') is 3

   #### lower

       string.lower('LOWER') is lower

   #### match

       string.match('This is a test!', 'test') is test

   #### rep

       string.rep('*', 5) is *****

   #### reverse

       string.reverse('reverse') is esrever

   #### sub

       string.sub('that', 2, 3) is ha

   #### upper

       string.upper('upper') is UPPER

## Comprendre votre nouveau script

* string.byte('A') retourne le code numérique de la valeur ASCII du(es) caractère(s) dans la chaine.
* string.char(65) retourne le caractère correspondant à la valeur numérique ASCII donnée.
* string.find('that', 'at') retourne la position en valeur numérique de la seconde chaine à l’intérieur de la première, retourne nil si la seconde chaine est absente.
* string.format('%.2f', 0) retourne le second argument formaté selon le premier argument.
    Voir fprintf pour les spécifications de formatage.
* for each in string.gmatch('This is a test', 't%a+') do cherche les occurrences du texte indiqué au second paramètre dans la chaine indiquée au premier paramètre. Dans notre exemple l'expression régulière 't%a+' désigne n'importe quel occurrence commençant par un "t" suivi par un nombre quelconque de caractère alphabétique "%a+".
    Voir Motifs dans le manuel de référence Scribunto pour la prise en charge des expressions régulières.
* string.gsub('This is a test', '%s', '-') retourne la chaine de caractère indiquée au premier argument en remplaçant chaque occurrence indiquée au second argument par la chaine indiquée en troisième argument. Notre exemple utilise une expression régulière où '%s' représente un espace, que nous remplaçons par un tiret '-'.
    Voir Motifs dans le manuel de référence Scribunto pour la prise en charge des expressions régulières.
* string.len('len') retourne la longueur (la taille) de la chaine en nombre de caractères.
* string.lower('LOWER') retourne la chaine convertie en caractère minuscule.
* string.match('This is a test!', 'test') cherche la première occurrence de la chaine indiquée en second paramètre dans la chaine indiquée au premier paramètre ; Retourne la chaine quand le résultat de la recherche est positif ou "nil" si le résultat de la recherche est négatif. Le seconde paramètre permet d'utiliser des expressions régulières, le troisième paramètre permet d'indiquer le point départ de la recherche.
    Voir Motifs dans le manuel de référence Scribunto pour la prise en charge des expressions régulières.
* string.rep('*', 5) retourne la chaine indiquée au premier paramètre, et répète l'opération le nombre de fois indiqué au second paramètre.
* string.reverse('reverse') retourne la chaine inversée.
* string.sub('that', 2, 3) retourne la "sous-chaine" contenue dans la chaine indiquée au premier paramètre ; commençant au second paramètre et terminant au troisième paramètre.
* string.upper('upper') retourne la chaine convertie en caractère minuscule .

## Conclusion

Félicitation! Vous êtes capable de créer, tester et comprendre un script Lua qui contient des fonctions de manipulation de chaines de caractères. Continuez en choisissant l'étude d'une nouvelle bibliothèque de fonctions.