Archiv verlassen und diese Seite im Standarddesign anzeigen : Leeren inhalt einer Table automatisch loeschen
also, ich hab das problem, dass wenn ich in meiner table
1 Droge
2 Rabid
3 Turk
4 Killa
5
6 Sport
zB ein leeres feld habe, funktioniert die funktion die mit der table arbeitet nicht mehr.
wie kann ich es also machen, dass wenn ein feld der table leer ist, dieser automatisch geloescht wird?
gegenstaende = {}
gegenstaende["klappstuhl"] = 16
gegenstaende["tisch"] = 32
gegenstaende["hocker"] = 64
gegenstaende[""] = 128
gegenstaende["sessel"] = nil
gegenstaende["sofa"] = 512
function gegenstaende_zeigen()
for k, v in pairs(gegenstaende) do
if (k ~= nil and k ~= "" and v ~= nil and v ~= "") then
Msg("Wir haben " .. v .. " mal den " .. k)
end
end
end
Wir haben 16 mal den klappstuhl
Wir haben 32 mal den tisch
Wir haben 64 mal den hocker
Wir haben 512 mal den sofa
das sofa, ich weiss...
Scarecrow
04.08.2008, 21:28
also, ich hab das problem, dass wenn ich in meiner table
1 Droge
2 Rabid
3 Turk
4 Killa
5
6 Sport
zB ein leeres feld habe, funktioniert die funktion die mit der table arbeitet nicht mehr.
wie kann ich es also machen, dass wenn ein feld der table leer ist, dieser automatisch geloescht wird?
Solche Fehler können sehr fatal sein, wenn sie serverseitig sind und mit Daten arbeiten, die jeder Spieler manipulieren könnte (indem er z.B. in seinen Namen nur Leerzeichen macht).
PS: Fatal in dem Sinne, dass jeder das Script lahmlegen könnte.
es ist nur cl :V
hier ma was von mir, aber es loescht nur 1zeile, dann muss ich es neu aufrufen usw, koennte man es nicht mit ner loop alle loeschen lassen ?
function deleteblank()
deltable = string.Explode("\n",datasave)
for k,del in pairs(deltable) do
if (del == nil or del == "") then
table.remove(deltable, k)
end
print(k,del)
end
file.Write("fixed_table.txt", table.concat( deltable, "\n" ) )
end
aus
...
4 Killa
5
6
7
8 Sport
wird
...
4 Killa
5
6
7 Sport
Wenn du 'n ganzen Inhalt aus einem Table löschen willst, dann brauchst
nur
table.remove( mytable )
machen...
lol ne q.q
ich will die leeren felder automatisch loeschen ? zeigt doch das obrige beispiel :V
Wenn es sich doch hier um Strings handelt,könnte er nicht einfach :
for k,v in pairs(table) do
if v == "" or v == nil then
table.remove(table,k)
end
end
das hab ich ja ...
aber es loescht immer eins nach dem andren und nicht alle ...
Dann mach halt:
for i=1, #mytable do // #mytable zählt wie viel Einträge im Table sind
if mytable[i] == "" or mytable[i] == nil then
table.remove( mytable, i )
end
end
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.