Thread If-Abfrage über Wertebereich (11 answers)
Opened by HP-User at 2012-06-19 21:07

Gast HP-User
 2012-06-19 21:07
#159193 #159193
Abend Leute

Hab wieder ein wenig Zeit gefunden, nach Feierabend an meinem Programm rumzutüfteln *g*

Der Auszuwertende String hat das Format: KG 000 X

Wobei "KG" immer da sein muss. Die Werte "000" können alle Zahlen im Bereich von 000 bis 999 annehmen. Das X darf nur die Werte "J", "M" und "A" haben.

1. Schritt: Ich zerlege den String in einen Gruppenstring (die ersten beiden Positionen). Dann die jeweiligen Zahlen (jede Null einzeln). Und den letzten Wert des Strings.

2. Schritt: Ich fahre eine If-Auswertung.

3. Schritt: Ich schaffe mir die Möglichkeit, Zwischenauswertungen in Statusskalare zu speichern.

Das Ganze sieht momentan so aus (Auszug):

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
##########################################
# Precise-Input-Check (PIC) / Story-Code #
##########################################

my $gruppenstatus = "N";
my $zahl1status = "N";
my $zahl2status = "N";
my $zahl3status = "N";
my $kennstatus = "N";

my $gruppenstelle = substr($customstorycode, 0, 2);
my $zahl1stelle = substr($customstorycode, 2, 1);
my $zahl2stelle = substr($customstorycode, 3, 1);
my $zahl3stelle = substr($customstorycode, 4, 1);
my $kennstelle = substr($customstorycode, 5, 1);

if ($gruppenstelle eq "KG") {$gruppenstatus = "Y";}
if ($kennstelle eq "J") {$kennstatus = "Y";}
if ($kennstelle eq "M") {$kennstatus = "Y";}
if ($kennstelle eq "B") {$kennstatus = "Y";}

if ($gruppenstatus eq "Y" and $zahl1status eq "Y" and $zahl2status eq "Y" and $zahl3status eq "Y" and $kennstatus eq "Y") { goto FirstCheckOK;}
goto StoryCodeUmfangError;


Was jetzt hier noch fehlt ist die Abfrage, ob die drei Nullen in der Mitte des Strings auch nur Zahlenwerte enthalten.

Mit meiner Methode würde das für jede "Null" so aussehen:

Code: (dl )
1
2
3
4
if ($zahl1stelle eq "0") {$zahl1status = "Y";}
if ($zahl1stelle eq "1") {$zahlstatus = "Y";}
if ($zahl1stelle eq "2") {$zahl1status = "Y";}
if ($zahl1stelle eq "usw...") {$zahl1status = "Y";}


Und dies für alle drei Skalare Zahl1/2/2... über alle Werte von 0-9 !!!

Das würde zwar funktionieren, aber geht es nicht auch einfacher?

Gruß HP-User

PS.: Na da habt ihr mal ein dickes Brot zum knabbern bekommen *grins*
---Nur Spass!--
Last edited: 2012-06-19 21:43:10 +0200 (CEST)

View full thread If-Abfrage über Wertebereich