Domino 9 und frühere Versionen > Entwicklung
Mehrstellige Zahl in mehrere einzelne Variablen unterteilen
jens1979:
Hallo mal wieder,
wünsche erstmal allen ein gesundes neues Jahr.
Mein Problem diesmal ist das ich eine Eingabe mittels einer Prüfziffernberechnung auf Tippfehler testen muss. Hierzu ist es notwendig das ich diese Eingabe (ist eine Zahl) in Ihre einzelnen stelle zwerlege, und zwar von hinten nach vorn.
D.h. wenn die Eingabe bespielsweise 522368 ist muss ich diese in 6 einzelvariablen zerlegen. Also Variable1=8, 2=6, 3=3, 4=2, 5=2 und Variable6=5.
Das zweite Problem hieran ist das die eingegeben Zahlen nicht immer gleichlang sind. Die Eingabe kann 2 bis 10 stellig sein.
Falls jemand eine Idee hat wie ich die Zahl auseinanderpflücken kann wäre ich für Tipps sehr dankbar, am liebsten wäre es mir wenn das irgendwie in der Formelsprache möglich ist weil ich dann da mit der Berechnung der Prüfziffer keine Probleme mehr hätte.
Danke schonmal im Vorraus
Jens
TMC:
Mit @Length kannst Du schon mal eine Fallunterscheidung (@If....) machen.
Eine Möglichkeit wäre es, mit @Left und @Right zu arbeiten, bringt Dich wohl zum Ziel, wenn auch nicht sehr elegant.
Beispiel, wenn Du die 3. Ziffer von Rechts haben willst:
_DritteStelleVonHinten := @Left(@Right( DEINFELD; 3); 1)
Das wird zwar dann eine lange Formel (Unterscheidungen mit @If(@Length....) und dann noch einzelne Variablen belegen, aber so geht das mit Sicherheit.
hth,
Matthias
jens1979:
sowas in der Art hatte ich schon probiert mit @middle, hatte irgendwie net so funktioniert wie ich wollte aber ich teste das gleich nochmal aus.
Danke erstmal
Jens
TMC:
Ach ja, und schau Dir mal die Bedingungen in der Designerhilfe an.
Evtl. musst Du den Feldwert (der wohl eine Zahl ist) mit @Text in Text umwandeln, das Ergebnis dann wieder mit @TextToNumber zurückwandeln.....
jens1979:
Anscheinend mach ich irgendwas falsch.
Wenn ich ne Variablen Definition innerhalb des @If mache bekomme ich die Fehlermeldung " := darf nur am Anfang eines Ausdrucks stehen: ':=' ".
Was könnt ich falsch machen?
Habs jetzt einfach mal mit
laenge := @Lenght(pruefziffer);
@If(laenge=10; _pz := @left(@right(pruefziffer;1);1););
probiert.
Jens
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln