Aller au contenu
BenjyNet

Aide LUA : Tri des données d'une matrice

Recommended Posts

J'ai besoin d'un coup de main, ou d'un coup de code plutôt :)

 

Comment on peut faire pour trier les données d'une matrice dans l'ordre croissant sur ma colonne "start" sachant que je l'ai faites comme ça et que bien sur si on tri une colonne faut que les données de la ligne suivent :

	| "Description" | "Start" | "End" |
------------------------------------------
1	|  "texte"	|  156    |  256  |
------------------------------------------
14	|  "texte"	|  125    |  125  |
------------------------------------------
23	|  "texte"	|  198    |  210  |
------------------------------------------
48	|  "texte"	|   64    |  560  |
------------------------------------------

 

Partager ce message


Lien à poster
Partager sur d’autres sites
table.sort(nomDeLaTable, function(a, b) return a.Start < b.Start; end);

 

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Barelle

Est-ce que tu saurais me faire une petite fonction qui pourrait me récupérer les dates et me les afficher en dates française suivant une chaîne de caractère ressemblant à ça 1571436000 - 1572822000 | Vacances de la Toussaint

 

Me semble qu'il doit y avoir une astuce du style v.gsub((%d), os.date("%d.%m.%Y", (%d)) ou v est ma variable contenant la chaine de caractère du dessus mais je trouve pas :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela répond-il à la question ?

function formatDate(sdate) -- Transforme une date en string en date exploitable
	year, month, day = sdate:match("(%d+)-(%d+)-(%d+)");
	if (year == nil) or (month == nil) or (day == nil) then
		return "???";
	else
		return day.."-"..month.."-"..year;
	end
end -- formatDate

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Heu non, c'est l'inverse moi j'ai un format en nombre genre 159624000 que je veux reformater en 12/08/2019. J'ai ça dans une chaine de caractère écrite comme ça : "158293000 - 156923000 | vacances toussaint"

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors ceci devrait faire l'affaire :

local str = "1571436000 - 1572822000 | Vacances de la Toussaint"

local date1   = string.match(str, "(%d+)%s");
local date2   = string.match(str, "-%s(%d+)%s");
local libelle = string.match(str, "|%s(.+)");

fibaro:debug(os.date("%d-%m-%Y", date1) .. " " .. os.date("%d-%m-%Y", date2) .. " " .. libelle); 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Roh la vache, je ne peux QUE te remercier. Ces pattern j'y comprends rien !!! Mais en tout cas, maintenant j'ai ce que je veux !! MERCI encore !!

Vacances.thumb.JPG.c396bcab95bed6af6e66762835f31c96.JPG

Partager ce message


Lien à poster
Partager sur d’autres sites

@BenjyNet

 on ets 2 lol Et tu utilises tes labelss repos travail c'est ca ?

 

Bon ben, partage alors ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

En fait j'ai concaténé 2 VD, le Jour Chomé et le Vacances Scolaires pour n'en créer qu'un seul. Car étant enseignant, si je suis en vacances c'est que je suis en repos :) C'est un cas très particulier et c'est pour ça que j'ai pas partagé. J'utilise 2 variables globales (today_occupation et tmrw_occupation) qui prennent le statut de "travail", "repos" ou "absent" en fonction des jours de la semaine, des jours féries et des vacances scolaires. Le statut "absent" c'est moi qui le force avec le bouton du VD. Je peux aussi forcer "repos" ou "travail" genre si je suis malade alors que j'aurai du bosser. Ces 3 paramètres déterminent le comportement de la maison.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@benjynet tu as oublier les jours de grèves

Envoyé de mon BLA-L29 en utilisant Tapatalk

  • Haha 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui j'ai zappé, j'ai pas mis non plus les jours d'arrêts maladie :)

  • Like 1
  • Haha 2

Partager ce message


Lien à poster
Partager sur d’autres sites

×