Autor
|
Thema: Summenbildung in Tabelle (2642 mal gelesen)
|
Erwin_S Mitglied

 Beiträge: 37 Registriert: 13.08.2006
|
erstellt am: 12. Apr. 2007 15:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo! ich möchte die Anzahl eines Wertes aus einer Tabelle auslesen, d.h. wenn in einer Tabellenspalte 5x "Hallo" steht, soll der Befehl 5 ausgeben. Folgendes klappt aus irgendeinem Grund nicht: Summe:real; Summe:=Tabelle.sumattr({1,1}..{1,*},"Hallo"); Es kommt zwar keine Fehlermeldung, aber er gibt für Summe immer 0.0 raus, obwohl der Eintrag in der Spalte 1 mehrmals vorkommt. Hat jemand eine Idee?? Schöne Grüße Euer Erwin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Apr. 2007 15:15 <-- editieren / zitieren -->
lt Hilfe : Die Methode sumAttr gibt die Summe der Attribute <string> aller Objekte im angegebenen Bereich der Liste bzw. Tabelle zurück (real). "hallo" ist wohl kein Objektattribut mit einem Wert > 0, oder ? Versuchs mal so: . . . tab.zeigerx:=1 tab.zeigery:=1; j:=0; while tab.finden({1,1}..{1,*},"Hallo") loop j:=j+1; end; print j; . . . ------------------ Der Simulator
|
Erwin_S Mitglied

 Beiträge: 37 Registriert: 13.08.2006
|
erstellt am: 12. Apr. 2007 15:19 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied
|
erstellt am: 12. Apr. 2007 15:28 <-- editieren / zitieren -->
Nein, er summiert die Zahlenwerte der Objektattribute ! schau Dir mal das Bsp in der Hilfe an. . . . Warteschlange.Zeiger := 1; print Warteschlange.sumAttr(`[1]..`[5],"Bearbeitungszeit"); . . . Dort werden alle Bearbeitungszeiten der Objekte in der Warteschlange aufsummiert und nicht die Objekte, die ein Attribut "Bearbeitungszeit" haben!
------------------ Der Simulator |
Erwin_S Mitglied

 Beiträge: 37 Registriert: 13.08.2006
|
erstellt am: 12. Apr. 2007 15:34 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied
|
erstellt am: 12. Apr. 2007 18:57 <-- editieren / zitieren -->
so gehts auch: is Summe:real; liste:table[string]; do liste.create(tabelle.ydim); liste.initialisieren(`[*,*], "Hallo"); summe:= tabelle.schnittMenge(`[1,1]..`[1,*],liste).dim; print summe; end; aber die Schleife ist eleganter ------------------ Der Simulator
|