Ist Zahl?
Guten Abend Forum.
Ich habe ein Textfeld, in dem Positionsnummern aus Leistungsverzeichnissen stehen. Das sieht z.B. so aus: 1.02.003. Die einzelnen Elemente dieser Position möchte ich neu formatieren, z.B. umwandeln in 001.002.0003. Das klappt auch wunderbar, solange die einzelnen Elemente reine Zahlen sind. Manchmal kommt aber eine Positionsnummer so daher: 1.02.003a. Bevor ich die Elemente neu formatiere, müsste ich einfach wissen, ob es sich um eine Zahl handelt. Das ist bei "003a" ja definitiv nicht der Fall. Die Funktion number("003a") gibt aber "0" zurück. Das reicht mir nicht, weil es auch Positionsnummern mit Nullen gibt, z.B. 1.00.003.
In Excel gibt es eine Funktion, die heißt "IstZahl" und gibt true oder false zurück. Haben wir so etwas auch in Ninox oder hat jemand eine Idee, wie man die Funktion nachbaut?
Ich stehe da echt auf dem Schlauch...
Viele Grüße, Jörg
6 Antworten
-
Hi Jörg. Workaroundidee:
*
if replacex(Text, "\d+", "IstZahl") = "IstZahl" then
true
else
false
end
*
Mirko
-
Guten Morgen Mirko.
Vielen Dank für diese Idee. Sie ist ab sofort eine globale Funktion in meiner Datenbank. Ich nutze tatsächlich bei der Verarbeitung von Positionsnummern Regular Expressions, allerdings bisher nur die "testx" Funktion. Das hier ist aber echt stark: wandle alle Zahlen in den String "IstZahl" um! Und zwar in beliebiger Reihenfolge, es funktioniert nicht nur mit "1a" und "A1", sondern auch mit "1a10".
Ich wünsche dir einen schönen Tag
Jörg
-
if num(Text) = Text then ... else ... end
-
Entschuldigung ... korrekt wäre natürlich:
if number(Text) = Text then ... else ... end
-
Klasse. Die Welt kann so einfach sein. if number(TEXTFELD) then true else false end.
-
Danke, Reinhard. Deine Lösung hatte ich bereits ausprobiert, sie aber verworfen, weil "1." eben auch eine Zahl ist. Das konnte ich in meinem speziellen Fall nicht gebrauchen. Aber die Lösung ist, genau wie die zweite von Mirko, für normale Zahlen (also mit Dezimaltrenner) sehr gut.
Viele Grüße, Jörg
Content aside
- vor 3 JahrenZuletzt aktiv
- 6Antworten
- 333Ansichten