vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 2210: Arabische in römische Nummern umwandeln 
Autor: Mungo
 Tipp anzeigenDatum: 28.09.10 15:40

Hallo, ich bin neu hier.
Bei mir werden die Zahlen 4-8 falsch dargestellt.
ZB. 3214 wird als MMMCCXI dargestellt.
Kann es sein dass hier ein Fehler im Code ist?
Gruß Mungo
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Arabische in römische Nummern umwandeln 
Autor: Franki
Datum: 29.09.10 02:29

Hallo Mungo,

ja das funktioniert nicht, selbt die 4 wird als I anstatt IV ausgegeben.

Aber schau mal auf:

http://www.vbarchiv.net/forum/id2_i73274t73274_zahlen-umwandeln-in-roemische-zahlen.html

da wurde hier im Forum eine andere Alternative vorgestellt. Habe grade getestet, sollte richtig sein.

Gruß,
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Arabische in römische Nummern umwandeln 
Autor: Mungo
Datum: 29.09.10 11:36

Hallo Franki
Danke. Klappt.
Gruß Mungo
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Arabische in römische Nummern umwandeln 
Autor: rahan
Datum: 15.12.10 10:27

Ja im Code waren Fehler bei der 4 und der 8. Das hab ich auch schnell gemerkt.

So müsste der Code nun richtig sein:

' Überarbeitet von Rahan
' 15.12.2010
' Design by Tobias König, Dresden
' Bei Gross = False wird die Römische Ziffer komplett klein geschrieben
Function RömischeNummerErmitteln(ByVal Nummer As Integer, _
  Optional ByVal Gross As Boolean = True) As String
 
  If Nummer = 0 Then Exit Function
 
  Dim j As Byte, k As Byte, d As Byte
  Dim Pa As String, RN As String
  Dim RZ As Variant
  Dim Beginn As Long
 
  ' vierstellige Zahl erstellen
  Dim Digit(4) As Integer
  Pa = Format(Nummer, "0000")
  For j = 1 To 4
    Digit(j) = Mid(Pa, j, 1)
  Next
 
  Select Case Digit(1)
    Case Is <> 0
      For k = 1 To Digit(1)
        RN = RN + "M"
      Next k
  End Select
 
  RZ = Array("M", "D", "C", "L", "X", "V", "I")
  For d = 2 To 4
    Beginn = d * 2 - 4
    Select Case Digit(d)
      Case 1, 2, 3
        For k = 1 To Digit(d)
          RN = RN + RZ(Beginn + 2)
        Next k
      Case 4
        RN = RN + RZ(Beginn + 2)
 
        'Rahan
        '15.12.2010
        RN = RN + RZ(Beginn + 1)
      Case 5
        RN = RN + RZ(Beginn + 1)
      Case 6, 7, 8
        'Rahan
        '15.12.2010
        'alt RN = RN + RZ(Beginn + 2)
        RN = RN + RZ(Beginn + 1)
        For k = 1 To Digit(d) - 5
          RN = RN + RZ(Beginn + 2)
        Next k
      Case 9
        RN = RN + RZ(Beginn + 2) + RZ(Beginn)
    End Select
  Next d
 
  If Not Gross Then RN = LCase$(RN)
 
  RömischeNummerErmitteln = RN
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel