AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Wie: String-Eingabe auf variable Regeln prüfen? (Script?)
Thema durchsuchen
Ansicht
Themen-Optionen

Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

Ein Thema von ralfiii · begonnen am 14. Feb 2011 · letzter Beitrag vom 14. Feb 2011
Antwort Antwort
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#1

Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 09:08
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
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 09:11
http://www.delphipraxis.net/135569-m...athelib-_.html
wie siehts damit aus??
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 09:28
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"
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#4

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 09:29
oder das hier:
http://www.delphipraxis.net/140590-s...i-v-0-6-a.html
oder PascalScript
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 09:37
@WM_CLOSE: Keiner deiner bisherigen Vorschläge hilft irgendwie bei diesem Problem

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
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#6

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 09:46
@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.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 10:07
@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:
[PatientenID]
Format=####ddmmyy
Faktor=3,7,9,0,5,8,4,2,1,6 // Oder falls nur 1-stellige Faktoren: 3790584216 ?
Mod=11
Dann ne Klasse/Funktion die diese Einstellungen verwaltet und eine Funktion, die die ID anhand dieser Regeln überprüfen kann.

Ist sicher noch nicht ausgereift. Aber vllt ein Anfang?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 10:41
PascalScript von RemObjects scheint perfekt dafür zu sein, danke.

@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...
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#9

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 14:52
PascalScript von RemObjects scheint perfekt dafür zu sein, danke
Spiele grad herum damit, scheint ja echt recht mächtig zu sein, aber ich find keine docu.
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 http://wiki.remobjects.com/wiki/Pascal_Script ist ja geradezu erschreckend leer.

Danke!
Ralf
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Wie: String-Eingabe auf variable Regeln prüfen? (Script?)

  Alt 14. Feb 2011, 14:53
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz