Domino 9 und frühere Versionen > Entwicklung

Mehrstellige Zahl in mehrere einzelne Variablen unterteilen

(1/6) > >>

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