Also, ich lerne gerade Perl, mit dem Buch In 21 Tagen Perl, und wollte mal ein kleines Programm, Textbasiert schreiben, das Benutzer speichert, und eine 'Benutzeroberfläche enthält'.
Ist sicher sehr einfach, allerdings, hänge ich jetzt schon 2 Tage dran, und ich find einfach den Fehler nicht, denn bei der Benutzeroberfläche hagt es.
Das Programm soll nichts großartiges sein, nur wollte ich mir diese kleine Rutine bauen, und ich hab zwar noch nicht sehr viel gelernt, aber dafür, sollte es reichen.
Quellcode :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
print "\n\n\n";
$s = "###";
print "\t\t\tBENUTZER ANMELDEN/ERSTELLEN\n\n\n";
print "Wollen sie sich anmelden oder wollen sie einen neuen Benutzer ertsellen?\n";
print "Zum anmelden login, um einen neuen Benutzer zu erstellen new eingaben.\n";
print "Um die Daten eines Benutzers zu veraender geben sie aendern in ihrer Benutzeroberflaeche ein.\n\n";
print "Um das Programm zu Beenden geben sie q oder quit ein.\n\n";
print "Eingabe: ";
$eingabe = <STDIN>;chomp $eingabe;
open FH, "user.txt";
foreach $str (<FH>) {
push @user,$str;
}
chomp @user;
close FH;
while (){
if ($eingabe eq "new") {
print "\n\n\nGeben sie ihren Vornamen an: ";
$vname = <STDIN>;chomp $vname;
print "\nGeben sie ihren Nachnamen an: ";
$nname = <STDIN>;chomp $nname;
print "\nGeben sie ihren Wohnort an (Dortmund,Koeln...): ";
$ort = <STDIN>;chomp $ort;
print "\nGeben sie ihre Postleitzahl an: ";
$plz = <STDIN>;chomp $plz;
print "\nGeben sie den Strassennamen an: ";
$str = <STDIN>;chomp $str;
print "\nGeben sie ihre Hausnummer an: ";
$hnr = <STDIN>;chomp $hnr;
print "\nGeben sie ein Passwort ein (5 Buchstaben,klein): ";
$passwort = <STDIN>;chomp $passwort;
open IL, ">>user.txt";
print IL $vname,$s,$nname,$s,$ort,$s,$plz,$s,$str,$s,$hnr,$s,$passwort,"\n";
close IL;
}
elsif (lc($eingabe) eq "quit" || lc($eingabe) eq "q") {
exit;
}
elsif (lc($eingabe) eq "login") {
foreach (@user) {
$zeile .= $_;
}
@user1 = split "###",$zeile;
print "\n\nGeben sie bitte ihren Benutzernamen ein: ";
$benutzer = <STDIN>;chomp $benutzer;
print "\n\nUnd jetzt bitte das Passwort: ";
$benutzer_pass = <STDIN>;chomp $benutzer_pass;
for ($c = 0;$c <= index($user1[$c],$benutzer);$c++) {
}
if ($user1[$c] eq $benutzer) {
$d = $c + 6;
}
elsif ($user1[$d] eq $benutzer_pass) {
print "\n\n\nSie haben ihre Benutzeroberflaeche betreten.\n\n\n";
print "\t\t\tWillkommen $benutzer";
print "\n\nUm ihre Persoehnlichen Daten einsehen zu koennen, geben sie look ein.";
print "\nUm sie zu aendern, einfach aendern eingeben.";
print "\nUm sich abzumelden geben sie abmelden oder ab ein.";
INNEN:while () {
print "\n\nEingabe: ";
$eingabe1 = <STDIN>;chomp $eingabe1;
if (lc($eingabe1) eq "look") {
$p1 = index($user1[$c],$benutzer);
$p2 = index($user1[$d],$benutzer_pass);
$look = substr(@user1,$p1,$p2 - $p1);
print "\n\n\nPersoehnliche Daten: $look";
}
elsif (lc($eingabe1) eq "abmelden" || lc($eingabe1) eq "ab") {
print "\n\n\nSie haben ihre Benutzeroberflaeche verlassen.";
last INNEN;
}
elsif (lc($eingabe1) eq "aendern") {
print "\n\n\nDieser Befehl existiert noch nicht.";
}
}
}
else {
print "\n\n\nDas war keine korrekte Eingabe!";
}
print "\n\nEingabe: ";
$eingabe = <STDIN>;chomp $eingabe;
}
Kann mir einer sagen, wo das Problem liegt ?
Ich finds nicht.
Bitte um Hilfe