Aller au contenu
jjacques68

variable tableau : ajout/suppression

Recommended Posts

hello tout le monde !

 

j'ai une fonction dans un QA qui ajoute une valeur dans une variable tableau, grâce à table.insert(), qui ajoute la valeur à la fin de la table.

si j'ai plus de 500 valeurs dans ma table, je supprime, à chaque nouvel ajout, le premier élément de la table. Comme ça je garde les derniers éléments arrivés.

Le but est de ne pas avoir une table qui grossit éternellement.

Voici le code tout bête :

function QuickApp:AddElement(element)
	if element ~= "" then
		table.insert(self.ListElement,element)
		if #self.ListElement > 500 then 
			table.remove(self.ListElement, 1) 
			self:warning(#self.ListElement) 
		end
	end
end

et bien visiblement le table.remove() marche pas !!!

c'est quoi qui cloche ?

Ce qui est étrange, c'est que quand je l'avais fait, y a plusieurs mois, je suis persuadé que ça fonctionnait !!!

 

Si vous une idée... merci d'avance !

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

Lua - Size of table returning different: https://stackoverflow.com/questions/54336703/lua-size-of-table-returning-different

 

Je suppose qu'avec une condition comme :

if element and element ~= "" then
  ...

Le fonctionnement paraîtrait (je n'ai pas essayé) plus normal…

Partager ce message


Lien à poster
Partager sur d’autres sites

hmmm :15: pourtant c'est pas l'ajout qui pose problème, mais bien le fait de devoir compter le nombre d'éléments...

 

EDIT : 

 

Tu penses qu'il se peut que j'ajoute des valeurs null dans la table ?

Et ce serait ça qui ferait la pagaille ?

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

roah c'est moi comme qui ait fait mon gros boulet de base !!!

 

j'avais une instruction dans une autre fonction du QA qui ajoutait un element à mon tableau avec table.insert() et donc sans passer par ma fonction... :13:

Du coup, des éléments pouvaient être ajoutés sans que la taille ne soit contrôlée !

 

J'ai corrigé et tout marche très bien maintenant !

désolé !!

 

Merci pour la participation !

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×