Andy Posted December 10, 2019 Share Posted December 10, 2019 Da wir gerade die Tage von rauchenden Loks geschrieben haben, habe ich sofort vermutet, dass Du da was von dem selbstgebrauten Äppelwoi in den Schlund gekippt hast Naja - für die Opfer weniger lustig. Aber das hat man eben von Sensationstourismus. Link to comment Share on other sites More sharing options...
metallix Posted December 10, 2019 Share Posted December 10, 2019 Getreu der üblichen Antwort von Verleihnix: mein Äbbelwoi raucht nicht! Tja shit happens, es fallen auch rundflug schraubhuber gelegentlich in den Alpen der südinsel vom Himmel und was sonst noch so passieren kann. Das Leben ist lebenslang lebensgefährlich! Cheers Tom Link to comment Share on other sites More sharing options...
Goetz Posted December 10, 2019 Share Posted December 10, 2019 vor 7 Stunden schrieb Timba: es müsste mit Tabelle genauso funktionieren. Nein, damit funktioniert es leider nicht. Eine Tabelle muss "iterable" - also lückenlos nummeriert - sein, damit table.remove() wie von dir gewünscht funktioniert. In einer Liste ist der Index eine Zahl. Eine Tabelle hat Namen als Bezeichner. Auch dann, wenn du als Namen eine Zahl verwendest. Deine 1 ist bei der Tabelle eine "1", also ein String. Link to comment Share on other sites More sharing options...
Timba Posted December 10, 2019 Author Share Posted December 10, 2019 (edited) @metallix Na, dann hoffe ich mal, dass unter deinem Wohnort nicht auch ein Vulkan schlummert. Als Metaller hättest du dann zwar das ultimative Schmiedefeuer , aber letztlich wohl doch zu heftig. Gruß Timba Edited December 10, 2019 by Timba Anrede eingefügt Link to comment Share on other sites More sharing options...
Timba Posted December 10, 2019 Author Share Posted December 10, 2019 vor 2 Stunden schrieb Goetz: Eine Tabelle muss "iterable" - also lückenlos nummeriert - sein, damit table.remove() wie von dir gewünscht funktioniert. Moin Götz, die Antwort befriedigt mich überhaupt nicht. Ich fülle eine Tabelle mit Objekten. table.insert($("Ereignisse").variables["Probe"], $("Taste ▄")) Das Ergebnis ist eine lückenlos nummerierte Tabelle. Dann klicke ich viermal auf table.remove($("Ereignisse").variables["Probe"], 1) Das Ergebnis ist nicht wie gewünscht Tabelle leer, sondern Tabelle mit leeren Einträgen. Wenn ich genau denselben Versuch mache und lediglich das Objekt durch einen Text oder eine Zahl ersetze, table.insert($("Ereignisse").variables["Probe"], "TEXT") table.remove($("Ereignisse").variables["Probe"], 1) dann funktioniert es wie es soll. Es hat also nichts mit "iterabel" zu tun, sondern damit, ob es um ein Objekt oder ein anderes Element geht. Probiere es gerne selbst aus, um dich zu überzeugen: Tabellentest.mbp Gruß Timba Link to comment Share on other sites More sharing options...
Goetz Posted December 10, 2019 Share Posted December 10, 2019 vor 40 Minuten schrieb Timba: Das Ergebnis ist nicht wie gewünscht Tabelle leer, sondern Tabelle mit leeren Einträgen. Weil du sie im MBS als Tabelle angelegt hast. Und deine Zellen damit Namen haben. Keine Nummern. Deshalb steht auch oben über der ersten Spalte "Namen" Link to comment Share on other sites More sharing options...
Timba Posted December 10, 2019 Author Share Posted December 10, 2019 vor 1 Stunde schrieb Goetz: Weil du sie im MBS als Tabelle angelegt hast. Und deine Zellen damit Namen haben. Keine Nummern. Deshalb steht auch oben über der ersten Spalte "Namen" Ok, und warum funktioniert es dann, wenn der Tabelleneintrag vom Typ Text ist, und bei Typ Objekt funktioniert es nicht? Für den Tabelleneintrag vom Typ Text gilt ja genauso "Weil du sie im MBS als Tabelle angelegt hast. Und deine Zellen damit Namen haben. Keine Nummern. Deshalb steht auch oben über der ersten Spalte 'Namen'" aber table.remove entfernt den Datensatz trotzdem. Die Erklärung dafür fehlt mir. An den oben geposteten Bildern kannst du sehen, dass die Einträge völlig identisch sind, bis auf den kleinen Unterschied, dass der Tabelleninhalt einmal Objekt und einmal Text ist. Entsprechend funtioniert es einmal nicht und einmal doch. Die von dir gelieferte Erklärung würde reichen, wenn es in beiden Fällen nicht funktioniert. Das ist nicht der Fall. Gruß Timba Link to comment Share on other sites More sharing options...
Neo Posted December 10, 2019 Share Posted December 10, 2019 Hallo Timba, Referenzen werden im Studio anders behandelt als einfache Datentypen, siehe dazu auch hier: Ob eine Variable nil ist oder nicht existiert, macht im Studio und in Lua keinen Unterschied. Wenn dich nil-Einträge in Tabellen stören, dann weise ihnen zuerst einen einfachen Datentypen zu und setze sie dann nil, dann löscht das Studio sie (weil nil kein gültiger Wert für einen einfachen Datentyp ist). Viele Grüße, Neo Link to comment Share on other sites More sharing options...
Timba Posted December 10, 2019 Author Share Posted December 10, 2019 Hallo Neo, danke für die Info. Der nil-Eintrag stört in diesem Fall nur deshalb, weil die Prüfung, ob ein Datensatz vorhanden ist ( #Liste > 0 ) ein "falsches" Resultat anzeigt. Jedenfalls gehe ich davon aus, dass ein nil-Eintrag gezählt wird, probiert habe ich es nicht. Ich werde einen Weg finden. Aber immerhin weiß ich nun, warum es so ist wie es ist. Gruß Timba Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now