perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 17
Click for quality!




12.02.2012 / 02:24

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragAbfrage 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

Beitragre: 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

Beitragre: 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

Beitragre: Abfrage Eingabe
Seitenanfang

#!/usr/bin/perl

use 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

Beitragre: Abfrage Eingabe
Seitenanfang
Zeig uns doch mal dein angepasstes Script.

Gruß TommyB

Datum: 12.05.2006-10:08

Beitragre: 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

-






-
-