Autor Thema: Sortierung bei römischen Kapitelnummern  (Gelesen 2182 mal)

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Sortierung bei römischen Kapitelnummern
« am: 12.02.04 - 09:47:14 »
Das Problem dürfte bekannt sein, aber die Suche nach dem Begriff "römisch" war wenig zielführend.
Ich habe eine Art Handbuch in einer Notes-DB abgelegt, bei dem die einzelnen Kapitel römische Nummern haben. Nun ist es natürlich nicht schön, dass die Sortierung (z. B. in Ansichten) nicht so klappt wie bei den üblichen arabischen Ziffern. Als Lösung habe ich jetzt in jedes Dokument ein zusätzliches Zahlenfeld eingefügt, in dem die jeweilige arabische Ziffer (z. B. I->1, VII->7 usw.) eingetragen wird und nach diesem Feld wird dann die Ansicht sortiert. Klappt soweit ganz gut, aber im Sinne einer besseren Bedienbarkeit wäre es natürlich schön, wenn man dieses durch einen Algorithmus erledigen lassen könnte.
Gibt es sowas oder vielleicht eine andere bessere Lösung? Wie löst Ihr sowas?
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Sortierung bei römischen Kapitelnummern
« Antwort #1 am: 12.02.04 - 09:50:29 »
... in Notes kenne ich noch keinen anderen Weg...

ata
Grüßle Toni :)

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Sortierung bei römischen Kapitelnummern
« Antwort #2 am: 12.02.04 - 10:02:07 »
also so nen Algorithmus sollte es an jeder Ecke im Internet geben

der erste Treffer bei Google führt zu http://lelion.de
da gibts im linken Navigator einen Link zu einem Umrechner. Schau dir einfach das Javascript von da an, und nimms in deine Maske auf, wenn das geht, oder übersetze es nach LotusScript (oder vielleicht sogar nach Formelsprache)

dann halt immer im Querysave die arabische Ziffer berechnen und in ner versteckten Spalte danach sortieren
Viel Spaß
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Sortierung bei römischen Kapitelnummern
« Antwort #3 am: 12.02.04 - 10:02:26 »
Na, römisches Zeugs gehört ja zu meinen Spezialitäten ....

Da die römischen Zahlen ein komplexes System darstellen, lassen sie sich informatikmässig leider nicht so ohne weiteres behandeln. Von Sortieren kann schon gar nicht die Rede sein. Es gibt nur den von Dir beschrittenen weg, wenn man nicht dauernd umrechnen will, was nicht ganz trivial ist, da man die römischen Zahlen schliesslich als String vorliegen hat und die Wertigkeiten über einen komplexeren Algorithmus ermittelt werden können (da zum Bleistift ein I sowohl eine 1 als auch eine -1 darstellen kann, abhängig von der Position)

Wie Anton schon gesagt hat, bietet Notes keine eingebaute Funktion für eine solche Umrechnung.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Sortierung bei römischen Kapitelnummern
« Antwort #4 am: 12.02.04 - 10:08:15 »
guckst du:

Sub Click(Source As Button)
   Msgbox RomToArab ("III")
End Sub

Function RomToArab(r As String) As Integer
   Dim p As Integer
   Dim z As String
   
   If Len(r) = 1 Then
      Select Case r
      Case "I"
         RomToArab = 1
      Case "V"
         RomToArab = 5
      Case "X"
         RomToArab = 10
      Case "L"
         RomToArab = 50
      Case "C"
         RomToArab = 100
      Case "D"
         RomToArab = 500
      Case "M"
         RomToArab = 1000
      End Select
   Elseif Len(r) = 0 Then '2. Basisklausel
      RomToArab = 0
   Else 'rekursive Klausel
      search_max r, z, p
      RomToArab = RomToArab(z) - _
      RomToArab(Mid(r, 1, p - 1)) + _
      RomToArab(Mid(r, p + 1, 1000))
   End If
End Function


Sub search_max(r As String, z As String, p As Integer)
   Dim i As Integer
   Dim j As Integer
   Const f = "MDCLXVI"
   
   For i = 1 To Len(f)
      For j = 1 To Len(r)
         If Mid(r, j, 1) = Mid(f, i, 1) Then
            
            p = j
            z = Mid(f, i, 1)
            Exit Sub
         End If
      Next j
   Next i
End Sub

Das sollte sich doch irgendwie in die Maske integrieren lassen...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Glombi

  • Gast
Re:Sortierung bei römischen Kapitelnummern
« Antwort #5 am: 12.02.04 - 10:24:50 »
Da war der eknori mal wieder schneller..

Da ich mir aber auch die Arbeit gemacht habe, möchte ich es der Nachwelt hinterlassen  ;D

Quelle:
http://support.microsoft.com/default.aspx?scid=kb;de;d31604

Andreas

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Sortierung bei römischen Kapitelnummern
« Antwort #6 am: 12.02.04 - 10:32:31 »
Ist doch immer wieder erstaunlich, wie schnell man hier in diesem Forum "geholfen wird" !
Vielen Dank. Ich denke, das reicht als Input!
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz