Thema: Delphi Ausdrücke vergleichen

Einzelnen Beitrag anzeigen

Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#1

Ausdrücke vergleichen

  Alt 29. Dez 2012, 23:38
Hallo,

eigentlich dachte ich, es wäre unnötig deswegen hier zu posten, aber langsam denk ich, das vielleicht einer von Euch das auf Anhieb einfacher hinkriegen würde.
Seit heute Nachmittag fummel ich hier an den Vergleichen herum.
Aber so richtig will das nicht.

Es geht darum, daß vier Strings aus Editboxen in Variablen (a,b,c,d) gelesen werden und dann soll getestet werden, ob die Strings aller "gefüllten" Editfelder im Hauptstring vorkommen


Bedingung ist erfüllt,
wenn alle Teilstrings (a,b, c, d) in dem Hauptstring XSTRING vorhanden sind, sofern sie NICHT leer sind
  • mindestens 1 Teilstring sollte aber nicht leer sein (macht sonst keinen Sinn);
  • ob die 3 anderen etwas enthalten ist optional (sind alles Strings aus den Edit.text)
  • Aber wenn sie nicht leer sind - müssen sie alle im Hauptstring enthalten sein, damit es gültig wird.

Code (grob)
Delphi-Quellcode:
if A <> "" then
if pos( A , XSTRING, 1) <> 0 then

if B <> "" then
if pos( B , XSTRING, 1) <> 0 then

if C <> "" then
if pos( C , XSTRING, 1) <> 0 then

if D <> "" then
if pos( D , XSTRING, 1) <> 0 then

Hatte das wie unten - erst mit 4 Zwischenvariablen, damit ich das mit dem AND vergleichen kann -aber dann ist ja noch nicht sicher, daßdie Editfelder nicht leer waren


Hier mal mein Versuch:
Vielleicht so ??? Aber dann ist immer noch nicht geklärt, ob die Teilstrings B, C, D (genaugenommen auch A) überhaupt NICHT "" Leer sind

Delphi-Quellcode:
// wenn alle Teilstrings in XSTRING vorhanden sind

if A <> "" then
if pos( A , XSTRING, 1) <> 0 then
Q := 1;

if B <> "" then
if pos( B , XSTRING, 1) <> 0 then
W := 1;

if C <> "" then
if pos( C , XSTRING, 1) <> 0 then
E := 1;

if D <> "" then
if pos( D , XSTRING, 1) <> 0 then

// =========================
IF Q and W and E and R = 1 then OK !
R := 1;

Danke für jede gute Idee.

EDIT: Sorry, war so in den Browser getippt
eine Signatur? - in 2022? - WOZU ?!!!

Geändert von BMI (30. Dez 2012 um 10:21 Uhr) Grund: damit möglw. Anfänger mit selbem Problem nichts falsches lernen: bei pos()= -1 durch 0 ersetzt und == durch =
  Mit Zitat antworten Zitat