Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
In einer Zeile soll stehen: "ID - Name der ID - Wert für diesen ID". Wobei ID eine Zahl ist, Name ein String und Wert wieder eine Zahl. Von diesen Zeilen sollen nun mehrere (respektive viele) untereinander stehen. Sodass es aussieht wie eine Tabelle.
Habe ich dich richtig verstanden?
Wenn ja: Ich hab sowas prinzipiell schon mal so gemacht. Ich hab mir einen (strikten) Cluster generiert mit den Werten ID, NAME und WERT (Typdefinition). Diesen Cluster hab ich in ein Array gelegt (auch strikte Typdefinition). Vom Array mach ich jetzt ein Anzeigeelement. Jetzt kann man einstellen, wieviele Zeilen vom Array man sehen will. Über die Indizierung kann man im Array "scrollen".
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
In einer Zeile soll stehen: "ID - Name der ID - Wert für diesen ID". Wobei ID eine Zahl ist, Name ein String und Wert wieder eine Zahl. Von diesen Zeilen sollen nun mehrere (respektive viele) untereinander stehen. Sodass es aussieht wie eine Tabelle.
Habe ich dich richtig verstanden?
Wenn ja: Ich hab sowas prinzipiell schon mal so gemacht. Ich hab mir einen (strikten) Cluster generiert mit den Werten ID, NAME und WERT (Typdefinition). Diesen Cluster hab ich in ein Array gelegt (auch strikte Typdefinition). Vom Array mach ich jetzt ein Anzeigeelement. Jetzt kann man einstellen, wieviele Zeilen vom Array man sehen will. Über die Indizierung kann man im Array "scrollen".
Ja, du hast mich richtig verstanden :-)
Ich probiere es mal und melde mich dann später....
Danke nochmals!
In einer Zeile soll stehen: "ID - Name der ID - Wert für diesen ID". Wobei ID eine Zahl ist, Name ein String und Wert wieder eine Zahl. Von diesen Zeilen sollen nun mehrere (respektive viele) untereinander stehen. Sodass es aussieht wie eine Tabelle.
Habe ich dich richtig verstanden?
Wenn ja: Ich hab sowas prinzipiell schon mal so gemacht. Ich hab mir einen (strikten) Cluster generiert mit den Werten ID, NAME und WERT (Typdefinition). Diesen Cluster hab ich in ein Array gelegt (auch strikte Typdefinition). Vom Array mach ich jetzt ein Anzeigeelement. Jetzt kann man einstellen, wieviele Zeilen vom Array man sehen will. Über die Indizierung kann man im Array "scrollen".
So ich habe es mal so hinbekommen:
Habe es ein bißchen anders gemacht und zwar über Strings.
Ich habe nun noch eine kleine Frage:
Ich will nun diese dynamische Liste, die sich ja bei jedem Schleifendurchlauf ergänzt, nur bestimmte Zeilen bzw. Werte herausholen. (zB. Ich nehme alle Werte bei denen die Beschreibung "(PDO2)Temp CH0" ist und stelle diese in einem Schaubild da.)
Eine Idee wie man sowas hinbekommt?
Aus dem 2D-Array die Spalte mit dem Kriterium (Beschreibung) extrahieren. Dieses Kriterium befindet sich dann in einem 1D-Array - und zwar index-identisch zu dem 2D-Array. Jetzt zwei Möglichkeiten: Das Gesuchte ("(PDO2)Temp CH0") ist identisch mit einem extrahierten Wert (beachte Case-sensitiv?). Oder es ist ein Teil davon "(PDO2)Temp CH0, Zähler". Ersteres ist einfach: Mit dem Element "Index von Eingang in Array ab Indexposition suchen" (Array-Palette) den Index suchen und auf das 2D-Array geben. Das in eine Schleife für alle gleichen Kriterien.
Bei "Teil davon" musst du das Suchen des Indexes halt manuell machen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Jetzt zwei Möglichkeiten: Das Gesuchte ("(PDO2)Temp CH0") ist identisch mit einem extrahierten Wert (beachte Case-sensitiv?). Oder es ist ein Teil davon "(PDO2)Temp CH0, Zähler". Ersteres ist einfach: Mit dem Element "Index von Eingang in Array ab Indexposition suchen" (Array-Palette) den Index suchen und auf das 2D-Array geben. Das in eine Schleife für alle gleichen Kriterien.
Bei "Teil davon" musst du das Suchen des Indexes halt manuell machen.
Ab da verstehe ich es nicht ganz.
So wie ich es verstehe, wird dann das Programm bei jedem Schleifendurchlauf, immer wenn sich mein Array erweitert, das komplette Array jedes mal durchsuchen. Aber das ist unnötig oder? Außerdem erhalte ich ja dann viele Werte doppelt, da sich ja "PDO2" mehrmals in meiner Liste befindet?
Kann sein, dass ich das auch falsch vertsehe.
' schrieb:So wie ich es verstehe, wird dann das Programm bei jedem Schleifendurchlauf, immer wenn sich mein Array erweitert, das komplette Array jedes mal durchsuchen. Aber das ist unnötig oder?
Zwar ja, aber was macht das aus? Das geht selbst mit großen Arrays so schnell, das siehst du gar nicht.
Was du optimieren kannst, ist die Sache mit dem Extrahieren. Da sich die Beschreibungen an sich wahrscheinlich nicht ändern werden, lädst du das 1D-Array mit den Beschreibungen nur ein einziges Mal bei irgendeinem Start (z.B. Start Automatik). Den Rest würde ich jedes mal machen.
Zitat:Außerdem erhalte ich ja dann viele Werte doppelt, da sich ja "PDO2" mehrmals in meiner Liste befindet?
Meinst du jetzt hier die Beschreibungsliste? Also doppelte Werte in der extrahierten Beschreibungsliste?
Im Prinzip bleibt es dir überlassen, wie du die Beschreibungsliste macht. Es komt halt auf dein "Extrahierwert" an: "PDO2" oder "(PDO2)Temp CH0" oder "(PDO2)Temp CH0, Zähler".
Hast du das Verfahren im allgemeinen verstanden, wie ich es hier meine?
[*nachdenk*]
Eigentlich kannst du die Sache auch so machen:
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
07.05.2008, 10:01 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2008 10:21 von joe1234.)
Hi,
so, bin heute wieder da!
Danke erstmal für die Antwort. Ich habe nicht genau genug beschrieben wozu ich das benötige! Sorry.
Also:
Ich habe diese dynamische Liste, die sich ja ständig erweitert. Nun hatte ich die Idee z.B. einfach über alle "Temp CH0" ein Schaubild zeichnen zu können.
Ich habe mir das so vorgestellt:
Ich füge noch einen Ringregister hinzu und dann eine Case-Strukur. Mit dem Ringregister wähle ich dann immer das zu zeichnende Schaubild aus.
z.B. ich wähle "Temp CH0", dann soll über alle "Temp CH0"-Werte ein Schaubild genzeichnet werden. Wenn ich dann "Temp CH1" auswähle, dann soll über alle "Temp CH1"- Werte ein Schaubild gezeichnet werden.
So ist eigentlich meine Idee.
Ansatz:
ich habe nun schon einen Ringregister und die Case-Struktur, nach der Case-Struktur habe ich ein XY-Graph gewählt. Die X-Achse ist immer mein Timestamp. Die Y-Achse ist eben variabel, je nach dem was ich auswähle.
Jetzt dachte ich mir, ich bau einfach ein Cluster. Dieser besteht aus 2-Arrays (X- und Y- Achse). Dieses müsste ich dann einfach mit dem Graph verbinden.
Ist dieser Gedankenweg richtig?
Zwar kann ich deine Aufgabe von hier aus nicht so richtig überblicken, aber das Bild sieht vom Ansatz - z.B. Enumerator auf Case - sieht programmiertechnisch schon mal nicht schlecht aus.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Hallo,
ich hatte zu Hause eine Idee, die ich aber selber nicht hinbekomme.
Da ich ja einenCluster habe, der bei jedem While-Schleifendurchgang erneuert wird, habe ich mir überlegt, aufgrund der ID, die der Cluster erhält, einfach ca. 10 Cluster erstellen (10 Cluster, weil ich insgesamt 10 verschieden IDs habe), bestehend aus einem Array für die Werte und ein Array für Timestamp. Je nach ID sollen nun die Daten in den verscheiden Clustern gesammelt werden.
Bsp:
ID 1 -> Cluster1 mit Wert 1, Timestamp 1
ID 2 -> Cluster2 mit Wert 1, Timestamp 1
ID 1 -> Cluster1 mit Wert 2, Timestamp 2
.
.
.
Jedoch bekomme ich es nicht den Array im Cluster anzusteuern bzw. den nächsten Wert im nächsten Feld zu speichern. Kann mir jemand helfen?
Gruß Joe
15.05.2008, 15:35 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2008 15:35 von IchSelbst.)
' schrieb:einfach ca. 10 Cluster erstellen (10 Cluster, weil ich insgesamt 10 verschieden IDs habe), bestehend aus einem Array für die Werte und ein Array für Timestamp. Je nach ID sollen nun die Daten in den verscheiden Clustern gesammelt werden.
Statt 10 Cluster aus zwei Arrays jetzt 10 Array of Cluster of (Wert+Timestamp). Sind die IDs relativ gleichverteilt, kann man auch ein 2D-Array aus ID und Cluster of (Wert+Timestamp) machen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).