Separate numbers
Hamza Raya
- vb-script
0 Melanie
Hallo Leute
Function Hochkommata(Zahl)
--------------------------------------------------------------------
Zahl = RTrim(Zahl)
If Len(Zahl) > 3 AND Len(Zahl) =< 6 Then
Hochkommata = Replace(Zahl, Right(Zahl, 3), "'" & Right(Zahl, 3))
End If
If Len(Zahl) > 6 Then
Hochkommata = Replace(Zahl, Right(Zahl, 6), "'" & Right(Zahl, 6))
Hochkommata = Replace(Zahl, Right(Zahl, 3), "'" & Right(Zahl, 3))
End If
End Function
--------------------------------------------------------------------
Diese Funktion soll nach den ersten drei und nach den ersten sechs Zeichen von rechts ein Hochkommata setzen. Das ganze funktioniert eigentlich. Hier einige Beispiele von Eingaben und Ausgaben
10000000 = 1'000'0000 <- Falsch
1123000 = 1123'000 <- Falsch
23000 = 23'000 <- Richtig
10000 = 1'0000 <- Falsch
123000 = 123'000 <- Richtig
Meine Frage: Warum diese Fehler ?
Andere Frage: Gibt es irgendeine Funktion im VB-Script um Zahlen zu separieren ?
Hi,
»...
Diese Funktion soll nach den ersten drei und nach den ersten sechs Zeichen von rechts ein Hochkommata setzen. Das ganze funktioniert eigentlich. Hier einige Beispiele von Eingaben und Ausgaben
...
Die Ergebnisse sind wirklich etwas ominoes. Aber ich wuerde zuerstmal stat RTrim nur trim(Zahl) machen. Ausserdem scheint mir das zweite If-statement etwas komisch, also statt dessen:
--------------------------------------------------------------------
Zahl = Trim(Zahl)
If Len(Zahl) > 3 AND Len(Zahl) =< 6 Then
Hochkommata = Replace(Zahl, Right(Zahl, 3), "'" & Right(Zahl, 3))
End IfIf Len(Zahl) > 6 Then
Hochkommata = Replace(Zahl, Right(Zahl, 6), "'" & Right(Zahl, 6))
Hochkommata = Replace(Hochkommata , Right(Hochkommata , 3), "'" & Right(Hochkommata , 3))
End If
End Function
Vielleicht bringt's ja was.
Gruss, Melanie
Ausserdem scheint mir das zweite If-statement etwas komisch, also statt dessen:
Hochkommata = Replace(Hochkommata , Right(Hochkommata , 3), "'" & Right(Hochkommata , 3))
Den Fehler habe ich übersehen
Vielleicht bringt's ja was.
Leider nicht. Aber es hat irgendwas mit diesen Nullen zu tun denn ich habe die Funktion mit einigen Zahlen gefüttert und folgendes kam dabei raus
1234500 = 1'234'500
1234000 = 1'234'000
1230000 = 1'23'0000
1200000 = 1'2'00000
Gibt es denn keine Funktion dafür um die Zahlen in Zahlenblöcke aufzuteilen ?
Gruss & Danke
Hamza
Hi, hallo
nimm die Zahl, kehre sie als String um und füge in einer Schleife jeweils 3 Stellen in ein dynamisches Array bis Länge verbleibende Zeichenkette < Gruppierungslänge ist (Abbruchbedingung für die Schleife ... kann man auch anders formulieren.
Das Array machst du mit einem Join(array,deinTrennzeichen) zu einem String und kehrst diesen wieder um, fertig!
War doch nicht so schwer ... dieser Funktion (Eingabe= Long,Int,String ; Ausgabe = String) gibst du einen treffenden Namen und dann hast du deine Funktion.
Mehr verrat ich dir aber nicht dazu.
Tschau, tschüß,
Frank
Hallo
Mehr verrat ich dir aber nicht dazu.
Nicht zufällig den Code auf Lage :-) ich bin ein fauler unerfahrener Coder...
Gruss