J'ai un problème avec mon array2d. Je veux vraiment avoir une commande de rafraîchissement.lua refresh/replace array2d
mes données sur donnees.txt
test1:30:1
test2:40:2
Donc, chaque fois que j'appelle la fonction ReadData. Il va envoyer à mon Array2d quelque chose comme ceci:
line_data = {{"test1", "30", "1"},
{"test2", "40", "2"}}
Mais le problème est que j'appelle la fonction. il va toujours ajouter les mêmes données, je voudrais juste rafraîchir ou remplacer peut-être, quand je fais un événement. mon code
line_data = {}
function ReadData()
local file = io.open("data.txt", "r")
for line in file:lines() do
line_data[#line_data+1] = { line:match('([^:]+):(%d+):(%d+)') }
end
end
gars, vous pouvez peut-être me aider à cette situation?
Il est généralement impossible de répondre à cette question. Comment obtenez-vous les données? Comment savez-vous si une ligne est nouvelle? Deux cas simples auxquels je peux penser spontanément: Une nouvelle ligne est simplement ajoutée au fichier ou vous pouvez distinguer les lignes par leur début ("header"): test1, test2, testN. Est-ce le cas? – pschulz
oups mon mauvais, this 'line_data = {}'. en fait avoir zéro au début. Je le déclare juste au tableau pour être un tableau sauvé avec la valeur de contain quand j'essaye la fonction d'appel lire – Han
cette ligne sur la boucle 'line_data [# line_data + 1] = {line: match ('([^:] +): (% d +): (% d +) ')}. il va faire un tableau avec une valeur contenant déjà une ligne: match. – Han