Page 1 sur 2
[Résolu] os.execute("date")
Publié : 13 déc. 2016, 21:25
par ziaziung
Bonsoir.
Comment récupérer dans une variable lua le résultat de "date" (celui tapé en ligne de commande dans une console?
Re: os.execute("date")
Publié : 13 déc. 2016, 21:29
par vil1driver
Re: os.execute("date")
Publié : 13 déc. 2016, 21:35
par ziaziung
Bien sur j'ai deja fait. Dans la doc il est dit que os.date(...) donne la date (les mois, les jours de la semaine) dans la langue locale :
All representations follow the current locale. Therefore, in a locale for Brazil-Portuguese, %B would result in "setembro" and %x in "16/09/98".
Ben ca marche pas. Alors que lorsque je tape date dans une console c'est en français, donc je me disais que se serait bien de récupérer cela!!!
Re: os.execute("date")
Publié : 13 déc. 2016, 22:10
par Neutrino
Code : Tout sélectionner
function os.capture(cmd)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
return s
end
commandArray = {}
print(os.capture("export LANG=\"fr_FR.UTF-8\" && date \"+%A %d %B %Y\""))
return commandArray
Re: os.execute("date")
Publié : 14 déc. 2016, 21:11
par ziaziung
Merci, ça fonctionne parfaitement.
Re: [Résolu] os.execute("date")
Publié : 14 déc. 2016, 21:19
par Neutrino
De rien

Re: [Résolu] os.execute("date")
Publié : 24 déc. 2016, 13:19
par stephdes
Neutrino a écrit :De rien

Désolé de te déranger à nouveau sur ce sujet Neutrino mais ça ne fonctionne pas chez moi.
Si j'ajoute ton script au début du mien en supprimant évidemment "return commandArray" il me retourne toujours le mois en anglais.
Tu peux m'aider sur l'utilisation de ton petit script s'il te plaît ?
Voici le début de mon script :
Code : Tout sélectionner
commandArray = {}
local timeNow= os.date("*t")
if (timeNow.hour >=6 and timeNow.hour <=7) then
commandArray['Variable:bonjour'] = tostring (0)
end
if (otherdevices['Reveil'] == 'On' and
timeNow.hour >=7 and
uservariables["bonjour"] == '0')
then
local sentence="Bonjour ! Nous sommes le " ..(os.date("%d")).. " " .. os.date("%B")
Re: [Résolu] os.execute("date")
Publié : 24 déc. 2016, 13:31
par Neutrino
Parce que c'est noël :
Code : Tout sélectionner
function os.capture(cmd)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
return s
end
commandArray = {}
local ajourdhui = os.capture("export LANG=\"fr_FR.UTF-8\" && date \"+%A %d %B %Y\"")
local timeNow= os.date("*t")
if (timeNow.hour >=6 and timeNow.hour <=7) then
commandArray['Variable:bonjour'] = tostring (0)
end
if (otherdevices['Reveil'] == 'On' and
timeNow.hour >=7 and
uservariables["bonjour"] == '0')
then
local sentence="Bonjour ! Nous sommes le " ..ajourdhui
return commandArray
Par contre, c'est pas testé

Re: [Résolu] os.execute("date")
Publié : 24 déc. 2016, 17:27
par stephdes
Merci de ton aide Neutrino, mais rien à faire...
J'ai tenté un print(ajourdhui) pour voir et le résultat est "LUA:"
Vide...

Re: [Résolu] os.execute("date")
Publié : 25 déc. 2016, 11:25
par stephdes
Bon, j'ai botté en touche et j'ai contourné le problème. ça fonctionne maintenant
Code : Tout sélectionner
local sentence="Bonjour ! Nous sommes le " ..(os.date("%A")).. " " ..(os.date("%d")).. " " .. os.date("%B")
local d = {
["Monday"] = " Lundi ",
["Tuesday"] = " Mardi ",
["Wednesday"] = " Mercredi ",
["Thrusday"] = " Jeudi ",
["Friday"] = " Vendredi ",
["Saturday"] = " Samedi ",
["Sunday"] = " Dimanche ",
["January"] = " Janvier ",
["February"] = " Février ",
["March"] = " Mars ",
["April"] = " Avril ",
["May"] = " Mai ",
["June"] = " Juin ",
["July"] = " Juillet ",
["August"] = " Août ",
["September"] = " Septembre ",
["October"] = " Octobre ",
["November"] = " Novembre ",
["December"] = " Décembre " }
for k, v in pairs (d) do
sentence = string.gsub(sentence, k, v)
end