LabVIEWForum.de
Alte Werte aus Tabelle löschen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Application Builder (/Forum-Application-Builder)
+---- Thema: Alte Werte aus Tabelle löschen (/Thread-Alte-Werte-aus-Tabelle-loeschen)

Seiten: 1 2


Alte Werte aus Tabelle löschen - maxxillian - 30.09.2016 08:32

Hallo,

ich habe folgendes Problem:

Ich benutze ein Tabelle um bestimmte Werte vorzugeben. In der Tabelle können mal mehr und mal weniger Werte sein. Das Problem ist wenn ich einmal z.b 10 werte eingegeben habe und beim nächsten mal nur 7 eingebe und 3 lösche nimmt mein Programm diese 3 als 0 an und es gibt einen Fehler..

Gibt es eine Einstellungsmöglichkeit oder einen anderen Trick für so einen Fall?

LG Max


RE: Alte Werte aus Tabelle löschen - GerdW - 30.09.2016 08:34

Hallo max,

Zitat:beim nächsten mal nur 7 eingebe und 3 lösche nimmt mein Programm diese 3 als 0 an und es gibt einen Fehler..
Ich habe mal markiert, wo das Problem zu suchen ist! Big Grin

Meinst du nicht auch, dass das Problem leichter zu finden ist, wenn du dein VI hier anhängst? (Gern auch für LV2014.)


RE: Alte Werte aus Tabelle löschen - Nordvestlys - 30.09.2016 08:54

Meine Kristallkugel ist gerade von der Inspektion zurück. Ich probiere sie gleich mal aus....

...wenn die Kugel funktioniert, dann löscht Du die Werte einfach indem Du sie markierst und "del" bzw. "entf" drückst. Richtig? Dann bleiben aber die (leeren) Einträge übrig. Stattdessen Rechtsklick auf die zu löschende Zelle und unter "Data Operations" bzw. dem entsprechenden deutschen Menüeintrag auswählen, was gelöscht werden soll.

Hth.


RE: Alte Werte aus Tabelle löschen - maxxillian - 30.09.2016 08:56

Hallo Gerd,

Zitat:Ich habe mal markiert, wo das Problem zu suchen ist! Big Grin

Wie so oft also Big Grin

Ich habe den Fall auch noch überhauptnicht im Programm berücksichtig.
Ich hatte überlegt ein keinen Teil zu programmieren in dem alle Nullen aus dem Array gelöscht werden aber ich bekomme nichts hin was in einem einzigen Schleifenumlauf funktioniert.
Hier ist mein subvi.

Hallo Nordvestlys,

[/quote] dann löscht Du die Werte einfach indem Du sie markierst und "del" bzw. "entf" drückst. Richtig? Dann bleiben aber die (leeren) Einträge übrig. Stattdessen Rechtsklick auf die zu löschende Zelle und unter "Data Operations" bzw. dem entsprechenden deutschen Menüeintrag auswählen, was gelöscht werden soll.[quote]

ja das stimmt zwar aber ich möchte das es einfacher ist.
Also entweder das ich es so programmiernen kann das es von selbst funktioniert wenn ich einen Wert lösche (=0)
oder das ich auf dem Frontpanel einen Button zum löschen mache.


RE: Alte Werte aus Tabelle löschen - GerdW - 30.09.2016 09:11

Hallo Max,

bei einem solchen VI wäre es immer schön, ein paar Standardwerte drin zu haben - nicht nur in der Tabelle…

Zitat:Ich hatte überlegt ein keinen Teil zu programmieren in dem alle Nullen aus dem Array gelöscht werden aber ich bekomme nichts hin was in einem einzigen Schleifenumlauf funktioniert.
Du kannst natürlich versuchen, Fehleingaben hinterher zu korrigieren: einfach eine kleine Schleife, die alle Zeilen löscht, die nur Nullen enthalten. Oder alle Zeilen löschen, deren X-Wert nicht monoton ansteigend eingegeben ist…

Ich persönlich finde es jedoch besser, wenn man schon bei der Eingabe der Werte filtert! Heißt: Event-Struktur nutzen und wenn in der Tabelle "Entf" oder "Backspace" gedrückt wird, die entsprechende Zeile programmatisch löschen! Ja, das ist ein gewisser Aufwand - aber als Programmierer ist man nun einmal dafür verantwortlich, dass der User (möglichst) nur gültige Eingaben produzieren kann!

P.S.:
- Warum hast du gleich dreimal IndexArray benutzt, wenn man das gleiche auch mit einer einzigen IndexArray-Funktion erreichen kann? IndexArray ist "resizable"!
- Warum ist da kein Errorhandling an den LimitSpecification-Funktionen?
- Ersetze das Schieberegister durch eine FeedbackNode und schon kannst du auf die While-Loop verzichten…


RE: Alte Werte aus Tabelle löschen - jg - 30.09.2016 09:15

Und hier eine Lösung zum Löschen "leerer" Zeilen.
[attachment=56726]
Gruß, Jens


RE: Alte Werte aus Tabelle löschen - maxxillian - 30.09.2016 09:54

Zitat: Heißt: Event-Struktur nutzen und wenn in der Tabelle "Entf" oder "Backspace" gedrückt wird, die entsprechende Zeile programmatisch löschen!

Zitat:Und hier eine Lösung zum Löschen "leerer" Zeilen

Wie kann man denn auf die Tasten "Entf" oder "Backspace" reagieren wennman in der Tabelle ist?
Können Zeilen nur durch einen Loop gelöscht werden?



Zitat: P.S.:
- Warum hast du gleich dreimal IndexArray benutzt, wenn man das gleiche auch mit einer einzigen IndexArray-Funktion erreichen kann? IndexArray ist "resizable"!
- Warum ist da kein Errorhandling an den LimitSpecification-Funktionen?
- Ersetze das Schieberegister durch eine FeedbackNode und schon kannst du auf die While-Loop verzichten…

1. Ja stimmt mach ich jetzt mit einem
2. Durch das angepasste dt sind die Grenzen die herrauskommen eigentlich nicht richtig aber mir ist noch keine Möglichkeit eingefallen es richtig zu programmieren deshalb sind die Funktionen nur vorläufig drin um das Programm laufen zu lassen und an anderen Fehlern zu arbeiten.
3. Ergibt sich dadurch ein vorteil?


RE: Alte Werte aus Tabelle löschen - GerdW - 30.09.2016 09:58

Hallo Max,

Zitat:Wie kann man denn auf die Tasten "Entf" oder "Backspace" reagieren wennman in der Tabelle ist?
Das habe ich doch schon geschrieben: Event-Struktur nutzen!

Zitat:Können Zeilen nur durch einen Loop gelöscht werden?
Wenn du in einem 2D-Array alle Zeilen prüfen willst, ist eine autoindizierende Loop die einfachste Möglichkeit. Meinst du nicht auch?

Zitat:3. Ergibt sich dadurch ein vorteil?
Übersicht?


RE: Alte Werte aus Tabelle löschen - maxxillian - 30.09.2016 10:03

Hallo Jens,

wie bekomme ich denn an den Tunnel noch eine boolische Abfrage dran?


RE: Alte Werte aus Tabelle löschen - GerdW - 30.09.2016 10:12

Hallo max,

Zitat:wie bekomme ich denn an den Tunnel noch eine boolische Abfrage dran?
Wie in LabVIEW üblich: Rechtsklick! (LabVIEW-Hilfe lesen schadet auch nicht.)