Domino 9 und frühere Versionen > ND8: Entwicklung
führende "0" aus Textfeld entfernen
Tim Pistor:
Speicherplatz ist teuer, drum noch eine Sparversion:
--- Code: ---v := @Trim(@ThisValue);
@While( @Begins( v ; "0" ) ; v :=@Trim(@Middle(v; 1; @Length(v))));
v
--- Ende Code ---
cebolina:
--- Zitat von: Tim Pistor am 17.12.13 - 17:25:53 ---Speicherplatz ist teuer, drum noch eine Sparversion:
--- Code: ---v := @Trim(@ThisValue);
@While( @Begins( v ; "0" ) ; v :=@Trim(@Middle(v; 1; @Length(v))));
v
--- Ende Code ---
--- Ende Zitat ---
noch eleganter - Danke!
thkn777:
Ein gesundes Neues Jahr wünsch' ich!
@cebolina
Für den Fall, daß man keine Schleifen mag oder einsetzen will und t den getrimmten Ausgangswert enthält (z.B. t := @Trim(@ThisValue)), könnte man so an die Sache herangehen:
x := @Explode(t;"0");
n := @Left(t;@Subset(x;1));
r := @Right(t;n);
Wie funktionierts:
- "0" wird als Trennzeichen beim @Explode verwendet --> x
- links vom Inhalt des ersten Elements der Liste x stehen in t alle führenden Nullen --> n
- rechts von n steht in t der ganze Rest ohne die führenden Nullen --> r
Das "Verhübschen" überlasse ich Dir - Du weißt am besten, welche Sonderfälle sich Deine fleißigen Nutzer für Dich ausdenken ;)
Tim Pistor:
In diesem Beispiel muss aber zwingend eine führende "0" geliefert werden?
Aus "0123" wird "123". Aus "123" wird "" - Abhilfe:
--- Code: ---t := "0" + @Trim(@ThisValue)
--- Ende Code ---
thkn777:
@Tim
Ich habe nur die Grundidee aufgeschrieben, korrekt. Mit ein bischen Drumherum wär's dann z.B.:
t := @Trim(@ThisValue);
x := @Explode(t;"0");
n := @Left(t;@Subset(x;1));
r := @Right(t;n);
ergebnis := @If(@Left(t;1)="0";r;t);
Sprich: wenn in t keine führende Null ist, dann wird t selbst das Ergebnis. In der letzten Zeile kann man dann r natürlich noch durch wiederholtes Einsetzen in einen langen Formelsprachebandwurm verwandeln ;) und hat nur eine einzige Zeile. Ich finde aber, das man sowas schlecht lesen kann.
Da ich nicht weiß, wieviel und welches Drumherum cebolina braucht, kann er sich das ja selber haargenau auf seine Bedürfnisse anpassen. Genau eine "0" als Eingabe wurde schon diskutiert. Dann kämen mir noch Leerzeichen mitten im String in den Sinn (Nutzer ist aus Versehen auf die Leertaste gekommen und hat es gar nicht bemerkt...). Sicher gibt's auch noch andere Prüfungen, die cebolina einbauen möchte. Minimale/maximale Länge des Strings, ein bestimmter Aufbau... usw.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln