Module:Yallou34Module1
[voir] [modifier] [historique] [purger]
Page de test par l'utilisateur Yallou34 des fonctions LUA avec Scribunto
Utilisation modifier
Fonctions exportables
fonction(frame)
– description (courte description defonction(frame)
et autres informations pertinentes).fonction2()
– description2 (courte description defonction2()
et autres informations pertinentes).
Autres fonctions :
fonction()
– description2 (courte description defonction()
et autres informations pertinentes).
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
mw.title
– description (courte description expliquant la dépendance de ce module externe).
Exemples modifier
Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
function p.Salutation()
return "Je me forme au langage Lua avec Scribunto."
end
local t = {"Piano","Boule","Tortue","Nénuphar"}
local mt = {}
function mt.__index()
return "(La clé spécifiée n'existe pas dans cette table)"
end
setmetatable(t,mt)
function p.mtable()
local reponse = " "
for i = 1,5 do
reponse = reponse.."<br />a la clé "..i..", on trouve : "..t[i]
end
return reponse
end
function p.horloge()
local reponse = ""
local temps = os.clock()
reponse = reponse.. "<br />La fonction os.clock nous retourne : "..temps
temps = temps*1000
reponse = reponse.."<br />Ce qui signifie que "..temps.." millisecondes se sont écoulées depuis le début de l’affichage de cette page."
return reponse
end
function p.codehex(frame)
local code = mw.loadData("Module:Nomcouleur")
local couleur = frame.args[1]
return "Le code hexadécimal correspondant à la couleur "..couleur.." est "..code[couleur]
end
function p.majuscule(phrase) -- Pour mettre tout en mot en capitales, utiliser {{uc:}}
local phrase = phrase.args[1]
local debut = mw.ustring.sub(phrase,1,1) --Extrait la première lettre de la phrase
local fin = mw.ustring.sub(phrase,2) --Extrait la fin de la phrase (sans la première lettre)
fin = mw.ustring.lower (fin) --mets la fin en minuscules
return mw.ustring.upper(debut)..fin -- Reconstruit la phrase en mettant la première lettre en majuscule et le reste en minuscule
end
function p.syntaxe(frame) -- mise en forme d'un texte
local texte = frame.args[1]
texte=mw.ustring.gsub(texte," "," ") --
texte=mw.ustring.gsub(texte," "," ") -- On supprime les espaces multiples
texte=mw.ustring.gsub(texte," "," ") --
texte = mw.ustring.lower(texte) -- On mets tout en minuscules
local sortie, debut, fin = ""
local positionp = mw.ustring.find(texte,".",1,true)
local positionv = mw.ustring.find(texte,",",1,true)
local position = #texte
if positionp==nil then
texte = texte .. "." -- On ajoute le point final inexistant
positionp = mw.ustring.find(texte,".",1,true)
end
if positionv==nil then
positionv=#texte
end
position = math.min (positionp,positionv)
local longueur = 0
local majusc = true
while position > 1 do
mw.log ("___cycle___")
phrase = mw.ustring.sub (texte,1,position) -- suppression des blancs au début
while mw.ustring.sub(phrase,1) == " " do
phrase = mw.ustring.sub (phrase,2) --
end
texte = mw.ustring.sub (texte,position+1) --
mw.log ("phrase : ",phrase)
mw.log ("texte : ",texte)
phrase=mw.ustring.gsub(phrase," ,",",") -- ceci semble fonctionner
mw.log ("phrase : ",phrase)
-- phrase=mw.ustring.gsub(phrase," .",".") -- Pourquoi cela fonctionne-t-il mal ?
mw.log ("phrase : ",phrase)
debut = mw.ustring.sub (phrase,1,1)
fin = mw.ustring.sub(phrase,2)
if (majusc) then
phrase = mw.ustring.upper(debut)..fin -- On met la première lettre en majuscule
else
phrase = debut..fin
end
longueur=#phrase
--while string.sub(phrase,longueur-1,1) == " " do
-- phrase = string.sub(phrase,1,longueur-2) .. string.sub(phrase,longueur)-- suppression des espaces précédents
-- longueur = #phrase
--end
--while string.sub(texte,position) == " " do
--texte = string.sub (texte,position+1) -- et des suivants
--end
positionp = mw.ustring.find(texte,".",1,true) --
positionv = mw.ustring.find(texte,",",1,true) --
if positionp==nil then
texte = texte .. "." -- On ajoute le point final inexistant
positionp = mw.ustring.find(texte,".",1,true)
end
if positionv==nil then
positionv=positionp+1 -- pour trouver positionp comme position
end
position = math.min (positionp,positionv)
if positionv == position then
majusc=false
else
majusc = true
end
mw.log(position,positionv,positionp)
sortie = sortie .. phrase
end
return sortie
end
return p