![]() |
Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
Hallo!
In unserer Software kann man eine Patienten-ID eingeben. Das ist bei den meisten Installationen die Sozialversicherungsnummer. Diese Zeichenkette ist in unterschiedlichen Ländern unterschiedlichen Regeln unterworfen. z.B. in Österreich: * 4stellige Nummer "abcx" gefolgt vom sechsstelligen Geburtsdatum "dDmMyY" * Prüfziffer x=(a*3 + b*7 + c*9 + d*5 + D*8 + m*4 + M*2 + y*1 + Y*6) mod 11 Hat jemand eine Idee wie ich die Überprüfung der Patienten-ID möglich offen gestalten könnte (also so, dass man die Regel, die dann vorzugsweise in einer Art Config-File gespeichert wird im Feld anpassen kann)? Ein regulärer Ausdruck hilft da ja nix, so weit ich weiss kann man da nicht rechnen. Irgendeine Script-geschichte? Danke, Ralf |
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
|
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
Du könntest dlls verwenden. Diese dann in einem Unterordner des Programmordners speichern und beim starten den Ordner durchsuchen und den Benutzer fragen, welche er verwenden möchte.
Wenn nachher dann weitere Länder hinzukommen brauchst du nur eine dll kopieren ;) Die dll sollte dann so eine Funktion wie "IsNumberValid(x:string):Boolean" (aufpassen mit strings) mitbringen und vielleicht ein bisschen Kosmetik wie "GetDisplayName():string" |
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
|
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
@WM_CLOSE: Keiner deiner bisherigen Vorschläge hilft irgendwie bei diesem Problem :roll:
jfheins' Vorschlag wäre jetzt auch auf die Schnelle das was ich vorschlagen würde. Theoretisch liese sich das ganze doch mit regulären Ausdrücken lösen. Falls die grundlegende Form der Eingabe korrekt ist musst du halt die Prüfziffer nochmal gesondert überprüfen, weil der reguläre Ausdruck das ja nicht kann. Gruß Neutral General |
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
@Neutral General:
mit der Script Engine hat man dieselben Vorteile wie bei der Dll, hat aber den Vor- bzw Nachteil, dass der Nutzer die Berechnung selbst relativ einfach selbst anpassen kann. Die MatheLib könnte in Verbindung mit regex den selben Efekt zeigen. Der Nachteil bei beiden Lösungen ist, dass sie aufwändiger zu implementieren sind als ein einfacher dll Aufruf. Es wurde aber in Post #1 nach einer Lösung gefragt, die in einem Config-File anpassbar ist. @Neutral General: Wenn du ein persönliches Problem mit mir hast kannst du dich gerne per PN an mich wenden. |
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
@WM_CLOSE:
Ich habe kein persönliches Problem mit dir. himitsus String-Mathe-Lib bringt hier einfach nichts. Die ist dafür ausgelegt vor allem über Strings mit sehr großen Zahlen rechnen zu können. Man könnte die Prüfziffer sicher auch über diese MatheLib berechnen aber... wieso? Wenn ich nicht total aufm Schlauch stehe, dann hat man davon einfach nichts. Mit einer Scriptengine wäre die Sache mehr oder weniger lösbar, jetzt wo ich nochmal drüber nachdenke. Aber auch das kommt mir einfach etwas zu weit hergeholt vor.. Keine Ahnung. Vielleicht hab ich da auch irgendwas übersehen was eine Scriptengine doch rechtfertigen würde. Mein Kommentar war jetzt eigentlich nicht böse gemeint, aber mir kamen deine Vorschläge irgendwie zu weit hergeholt vor. Nur ne kleine Lösung die mir grad so eingefallen ist. Ist jetzt aber noch nicht großartig durchdacht. Vllt. ne Ini-Datei? Zitat:
Ist sicher noch nicht ausgereift. Aber vllt ein Anfang? |
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
Zitat:
@Neutral General: Dein Prüfziffer-schema wäre zu unflexibel. Was wenn z.B. Schweden das nicht mit modulo sondern ganz anders macht, oder nicht nur Zahlen sondern auch Buchstaben verwenden lässt... |
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
Zitat:
Wenn ich nun z.B. eine Exception raisen will, so mach ich das mit raiseexception Aber wo gibt's die Doku zu den Parametern? Das Wiki unter ![]() Danke! Ralf |
AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
Ich habe ein ähnliches Problem, (Formale Prüfung von Patentnummern) und da bediene ich mich für jedes Land aus einem "Baukasten", zerlege also die übergebene Nummer einzelne Teile.
Da sich da nicht viel ändert, kann ich problemlos einmal im Jahr den entsprechenden Update erstellen. Bei höherer Änderungsfrequenz wäre die DLL-Lösung bestimmt nicht schlecht. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz