Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5700[/thread]

Menue in Perl

Leser: 2


<< >> 8 Einträge, 1 Seite
thc
 2003-09-09 04:32
#85695 #85695
User since
2003-09-09
5 Artikel
BenutzerIn
[default_avatar]
Tach zusammen,

hab da mal ein Problem, und zwar wollte ich ein Menue in Perl machen, das wie folgt aussieht,

+-------------------+
|(1) Funktion eins  |
|(2) Funktion zwei |
|(3) Funktion drei  |
|                           |
|(4) Konfig            |
|                           |
|(0) Quit               |
+-------------------+

Nun gut, das hab ich ja hinbekommen, bloß wie
bekomme ich das hin, wenn ich sagen wir mal in
"(4) Konfig" war, das ich wieder wählen kann
und dann in Menue-Punkt "(1) Funktion eins" z.B.
komme?
Arbeite in Sub-Routines falls euch das weiterhelfen könnte.

Gruß --==THC==--
Ishka
 2003-09-09 05:05
#85696 #85696
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Meinst du die Konsole oder ein graphisches Interface?
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
renee
 2003-09-09 09:52
#85697 #85697
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du nach Menüs in Perl/Tk suchst, findest Du hier ein gutes Beispiel:
http://gd.tuwien.ac.at/languag....l#menus
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
SirLant
 2003-09-09 13:05
#85698 #85698
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
In der Konsole ist das kein Problem, in einem alten Programm von
mir habe ich das so gemacht:

Code (perl): (dl )
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
##############################--Hier beginnt das Menue--##############################
sub menu{
                                                #Das Menue muss so aussehen ,damit es auf der Konsole richtig ausgegeben wird!
my $menu = <<HERE_MENU;

   Oeffnen      <1> $info <Hier ist die Hilfe deaktiviert>
   Beginnen     <2>
   Neues Archiv <3>
   Beenden      <4>
   Hilfe        <5> <Die Hilfe koennen sie jederzeit ueber "h" aufrufen!>
HERE_MENU


print "\n$menu\n";
print "Auswahl:";

chomp($choice = <>);
help($choice);


##############################--Die Switch-Konstruktion wertet die Eingabe aus--##############################

SWITCH: {
        $choice == 1 && do { readin();
                                                last SWITCH;};
        $choice == 2 && do { start();
                                                last SWITCH;};
    $choice == 3 && do { create();
                                                last SWITCH;};
    $choice == 4 && do { finish();
               
         last SWITCH;};
        $choice == 5 && do { help();
                                                last SWITCH;};
        $choice == $choice && do { print "Sie haben sich vertippt!Ihre Eingabe lautete $choice.\n\n\n";
                                                           menu();
                                            last SWITCH;};
        }
}

menu(); #durft das menu am Anfang auf

Nun ruft jede der aufgeführten Routinen am ende wieder menu(); auf und somit habe ich eine Endlosschleife, bis man
die Funktion Exit auswählt.
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
thc
 2003-09-10 02:07
#85699 #85699
User since
2003-09-09
5 Artikel
BenutzerIn
[default_avatar]
Danke in erster Form für eure Antworten,
aber ich habe den Fehler selbst gefunden den
ich blöderweise fabriziert habe.
Und zwar habe ich

Code: (dl )
1
2
3
4
5
6
7
8
9
sub menu
{
     print "Choose\n> ";
     chop ($choose = <STDIN>);
}
if ($choose eq 1)
{
      print "bla";
}

geschrieben, statt die "if" prozedur in der Sub-Routine zu schreiben.

Bin ja nur ein Perlanfänger :D

Aber da hätte ich eine weitere frage, wie kann
man die Anzahl der Lieder, unter BSD (Art von Linux) von einer Musik-CD ermitteln???

Gruß --==THC==--
pq
 2003-09-10 02:21
#85700 #85700
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=thc,10.09.2003, 00:07]Und zwar habe ich
Code: (dl )
1
2
3
4
5
6
7
8
9
sub menu
{
     print "Choose\n> ";
     chop ($choose = <STDIN>);
}
if ($choose eq 1)
{
      print "bla";
}

geschrieben, statt die "if" prozedur in der Sub-Routine zu schreiben.
[/quote]
und du hast chop anstatt chomp geschrieben.
Quote
wie kann
man die Anzahl der Lieder, unter BSD (Art von Linux) von einer Musik-CD ermitteln???

hmm, in perl oder einfach so?
Code: (dl )
1
2
3
system('mount /cdrom') and die $!;
my $anzahl = my @files = glob "/cdrom/*.wav";
# Edit: ungetestet!!

Quote
Gruß --==THC==--

toller nick...\n\n

<!--EDIT|pq|1063146140-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Ishka
 2003-09-10 02:28
#85701 #85701
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
du kannst auch mit $blah=`file`; (systemaufruf) den dateityp ermitteln, damit du nciht Dateien erwischt, die zufällig ne Endung von ner adio-Datei haben, aber keine sind
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
thc
 2003-09-11 22:35
#85702 #85702
User since
2003-09-09
5 Artikel
BenutzerIn
[default_avatar]
Es besteht aber bei euren skipten ein Fehler, man kann unter BSD
(soweit ich weiß auch unter LINUX) keine Musik-CD's mounten.

Also ist die methode auch nicht Realisierbar.

Auch wenn euch mein Nick nicht gefällt

Gruß --==THC==--

(bin von der Droge gottseidank seit mehreren Monaten los!)
<< >> 8 Einträge, 1 Seite



View all threads created 2003-09-09 04:32.