AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Regeln zur Datenvalidierung sinnvoll formulieren
Thema durchsuchen
Ansicht
Themen-Optionen

Regeln zur Datenvalidierung sinnvoll formulieren

Ein Thema von Caps · begonnen am 21. Aug 2017 · letzter Beitrag vom 23. Aug 2017
Antwort Antwort
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#1

AW: Regeln zur Datenvalidierung sinnvoll formulieren

  Alt 22. Aug 2017, 10:00
Hm, ok, aber in Deinem Beispiel muss ja auch Regel_3 vor Regel_4 ausgewertet werden, d.h. diese Reihenfolge muss mir bei der Formulierung der Regeln schon bekannt sein. Dann kann ich sie auch gleich ausschreiben, statt sie generieren zu lassen(?). Oder liege ich immernoch schief?

lg Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Regeln zur Datenvalidierung sinnvoll formulieren

  Alt 22. Aug 2017, 10:23
Stimmt, nur '<' impliziert ja immer auch ein 'Wert ist zahl'. Sprich eigentlich ist die Regel 'b < 20' auch nicht 'atomar' sondern müßte 'wenn b Zahl ist, dann Prüfe b < 20' lauten.
Ich denke, daß es darauf hinausläuft zuerst einen Satz an 'atomaren' Regeln zu prüfen und dann erst die davon abgeleiteten. Damit bist Du dann unabhängiger von der Reihenfolge.
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#3

AW: Regeln zur Datenvalidierung sinnvoll formulieren

  Alt 22. Aug 2017, 10:33
Ja, stimmt, atomare Regeln sollten auf jeden Fall zuerst ausgewertet werden.
Ich probiere mal mein Glück...
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#4

AW: Regeln zur Datenvalidierung sinnvoll formulieren

  Alt 22. Aug 2017, 11:02
oder "implizite" Regeln

"b < 20" = "b ist Zahl und kleiner 20"
bzw. "b" wird mit Zahl verglichen -> wenn b keine Zahl, dann False (nicht valide)

Wenn die Regel einen Fehler erzeugt (ungültige Typumwandlung, Zugriff auf nichtvorhandene Felder, ...), dann ist sie nicht valide.
So ist jede Regel für sich erstmal auswertbar, egal in welcher Reihenfolge die Regeln kommen.
Die Auswerung der Regel darf aber inaktive Zweige nicht auswerten. Also bei Regel_1: (a <> "Max") or (b < 20) und a nicht max, dann darf b nicht ausgewertet werden und keinen Fehler werfen, wenn b keine Zahl ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Aug 2017 um 11:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#5

AW: Regeln zur Datenvalidierung sinnvoll formulieren

  Alt 23. Aug 2017, 05:58
Ich würde meine Regel mit einer Reihenfolge und einer Abhängigkeit versehen (wenn dann).

zB:
1 a=Max
1.1 b ist Zahl
1.2 b > 20
2 a <> Max
2.1
2.2
...

Jetzt müssten wir wissen, wie deine Regeln aufgebaut sind + wie verschachtelt die sein können, ob du damit genug hast.
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#6

AW: Regeln zur Datenvalidierung sinnvoll formulieren

  Alt 23. Aug 2017, 11:03
Ich danke Euch für die Antworten!

Ich bin nun drauf gekommen, es ugf. so zu machen:

1) Alle Regeln werden explizit formuliert (d.h. enthalten immer alle auszuwertenden Ausdrücke).
2) Einmal ausgewertete Ausdrücke "cachen" ihren Funktionswert, so dass bei der nächsten Auswertung darauf zurückgegriffen werden kann.

So bin ich unabhängig von der Reihenfolge der Regeln.
Das isses im Grunde, was ich wollte.

lg Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  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 15:49 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-2025 by Thomas Breitkreuz