Autor
|
Thema: Finden (534 mal gelesen)
|
L.W. Mitglied Student
Beiträge: 5 Registriert: 21.11.2018 Werkersteuerung
|
erstellt am: 08. Jan. 2019 12:19 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe derzeit folgendes Problem mit der finden Methode. In meiner Simulation suche ich in einer Tabelle nach einem Wort. Wenn ich zweimal das Gleiche suche (in dem Fall nach der Spalte in der Xpos steht), bekomme ich zwei unterschiedliche Ergebnisse raus. (1 und 3) Woran liegt der Fehler es müsste doch zwei mal 3 rauskommen ? var z : integer Tabelle.setzeZeiger(0,0); Tabelle.finde({*,0},"Xpos") z := Tabelle.ZeigerX print z var x : integer Tabelle.setzeZeiger(0,0); Tabelle.finden({*,0},"Xpos") x := Tabelle.ZeigerX print x Vielleicht kann mir ja jemand helfen, Danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
L.W. Mitglied Student
Beiträge: 5 Registriert: 21.11.2018 Werkersteuerung
|
erstellt am: 08. Jan. 2019 14:12 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 08. Jan. 2019 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für L.W.
Moin, mich irritiert tatsächlich, dass keine Fehlermeldung in V14 erfolgt... Sind die Bezeichnungen einzigartig in dem Index, kannst du auf diesen direkt adressieren Beispielsweise so ...
Code: Tabelle["Xpos",ZeilenIndex]
Probier mal so....
Code: var z : integer Print Tabelle.setzeZeiger(0,0); --Diese Zelle existiert nicht, weil Tabelle.ZeigeZeilenindex ist false Print Tabelle.finde({*,0},"Xpos") --Rechtschreibung z := Tabelle.ZeigerX --bekommst hier die Zelle raus, die momental markiert ist (Output: 1) print zvar x : integer Print Tabelle.setzeZeiger(0,0); --Setzt den Zeiger wieder nicht, weil Tabelle.ZeigeZeilenindex ist false Print Tabelle.finden({*,0},"Xpos") --weil Zeiger auf 1,1 steht, wird dieser Wert richtig gefunden x := Tabelle.ZeigerX --hier auch richtig ausgegeben print x
alles was in Ausgabe "fase" ist, ist nicht richtig ausgeführt... Generell ist der Ansatz richtig... Setze Zeiger auf Zelle die existiert und oberhalb oder gleich dem gesuchten Wert. Dann finden() ;-).... Und am Besten das Finden in "If" abfragen.
Code:
var x : integer Tabelle.setzeZeiger(1,0); if Tabelle.finden({*,0},"Xpos") x := Tabelle.ZeigerX print x else print "Wert nicht gefunden" end;
vG Nadin
------------------ Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|