|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Abfrage Eingabe
|
Seitenanfang |
| Hallo Ihr, folgendes Problem: ich wollte gern eine Abfrage machen, ob eine Zahl oder ein Buchstabe D eingegeben wurde, wenn ja dann sollte das Script weiter laufen, wenn nein, die Abfrage noch einmal kommen. Wenn ich Zahlen eingebe funktioniert die Abfrage nicht und er erkennt nicht, dass eine Zahl eingegeben wurde. Beim Buchstaben D erfolgt die Erkennung sehr gut und es klappt wie gewünscht. Folgender Code ist für die Abfrage zuständig: while () { print "Jahr (D=Default, aktuell: $jahr): "; chomp ($jahr_eingabe = <STDIN>); if ( ($jahr_eingabe !~ /\d*/) || ($jahr_eingabe ne "D") ) { print "Eingabe: $jahr_eingabe\n"; print "Fehlerhafte Eingabe, entweder eine Zahl oder D fuer Default angeben!\n"; } else { last; } }
Kann mir einer erklären, wie das nun mit beidem funktioniert, also egal ob Zahleneingabe oder Buchstabe D eingegeben wurde? Gruß zeusel
Datum: 04.05.2006-15:26

|
re: Abfrage Eingabe
|
Seitenanfang |
| Hallo Zeusel, ich wuerde die if-Bedingung so verwenden (ist einfacher zu lesen): while () { print "Jahr (D=Default, aktuell: $jahr): "; chomp ($jahr_eingabe = <STDIN>); last if( ($jahr_eingabe =~ /\d+/) || ($jahr_eingabe eq "D") ); print "Eingabe: $jahr_eingabe\n"; print "Fehlerhafte Eingabe, entweder eine Zahl oder D fuer Default angeben!\n"; }
Datum: 04.05.2006-17:26

|
re: Abfrage Eingabe
|
Seitenanfang |
So ich habe das Script zwar angepaßt und geändert, so wie Dein Vorschlag aussah, leider akzeptiert er aber weiterhin auch die Eingabe von Kleinbuchstaben egal welche, es scheint alles korrekt zu sein.... Noch eine Idee?
Datum: 11.05.2006-13:47

|
re: Abfrage Eingabe
|
Seitenanfang |
#!/usr/bin/perluse strict; use warnings; my $entry; my $yyyy = "2006"; my $error = "Fehlerhafte Eingabe: D oder Jahreszahl!\n"; while ( 1 ) { print "Jahr ([D]=Default, aktuell: $yyyy): "; chop ( $entry = <STDIN> ); last if ( $entry =~ /\d{4}/ || $entry =~ /[D]/ ); } print "Weitere Verarbeitung.\n";
Aslo bei funktionert das einwandfrei. Damit das Skript weiterläuft, muss man entweder eine vierstellige Zahl oder D eingeben.-uw
Datum: 11.05.2006-14:03

|
re: Abfrage Eingabe
|
Seitenanfang |
| Zeig uns doch mal dein angepasstes Script. Gruß TommyB
Datum: 12.05.2006-10:08

|
re: Abfrage Eingabe
|
Seitenanfang |
| Ich muss mich ThommyB da anschließen. Man sollte, wenn es irgend geht PatternMatches auf "positive positives" prüfen und nicht auf "false positives". Der Grundgedanke des PatternMatching ist ja das Pattern zu finden! -uw
Datum: 04.05.2006-21:34

|
|

|

|

|
 |

|

|
|