9 Einträge, 1 Seite |
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/perl
# ******************************************************************************
# ** Funktion: **
# ** 1. LOKALISIERE ein PERL Programm über einen FILE OPEN Dialog. **
# ** 2. Zeige den PFAD zum PERL-Programm sowie den Namen des PERL Programmes **
# ** in einem ENTRY FIELD an. **
# ** 3. Bei drücken der "AUSFÜHREN"-Taste soll das PERL-Programm ausgeführt **
# ** werden. Der normalerweise im DOS-Fenster angezeigte OUTPUT soll **
# ** umgeleitet und in einem AUSGABE-FENSTER angezeigt werden. **
# ******************************************************************************
use Tk; # Use TK.
use Tk::LabFrame; # Use "Label Frame".
# *****************************************************************************
# ** Generiere das HAUPTFENSTER ***********************************************
# *****************************************************************************
my $mw = MainWindow->new; # Das "Hauptfenster".
$mw->title("Programm laden und Ausführen"); # Der TITEL von "Hauptfenster".
# *****************************************************************************
# ** Generiere DATEI Menü *****************************************************
# *****************************************************************************
$ErstesMenuBar = $mw->Frame(-relief=>'groove', -borderwidth=>3)->pack(-side=>'top',-fill=>'x'); # Das Rahmenwerk.
$MeinErstesMenuBar = $ErstesMenuBar->Menubutton(-text=>'Datei')->pack(-side =>'left'); # Der Button "Datei".
$MeinErstesMenuBar->command(-label=>'Ende', -command=>sub{$mw->destroy}); # Der Button "Ende".
# *****************************************************************************
# ** Generiere DATEI LADEN Menü (Laden des Programmes) ************************
# ** - Zuerst zeichne ich ein FRAME um die ganze Einheit **********************
# ** - Danach kommt der LADEN BUTTON ******************************************
# ** - Abschließend kommt das ENTRY Feld **************************************
# *****************************************************************************
my $laden = $mw->LabFrame(-label=>'[ 1--> Lade Programm zur Ausführung ]', -labelside=>'acrosstop')->pack
(-side =>'top', -expand=>1, -fill=>'x'); #
my $laden_button = $laden->Button(-text=>'Programm laden', -command=> \&Lade_Programm)->pack # Pack
(-side=>'left', -expand=>0, -fill=>'none'); #
my $laden_entry = $laden->Entry(-width=>50)->pack # Pack
(-side=>'left', -expand=>1, -fill=>'x'); #
# *****************************************************************************
# ** Generiere DATEI AUSFÜHREN Menü (ausführen der Aktion) ********************
# ** - Zuerst zeichne ich ein FRAME um die ganze Einheit **********************
# ** - Danach kommt der AUSFÜHREN BUTTON **************************************
# ** - Abschließend kommt der ENDE BUTTON *************************************
# *****************************************************************************
my $button = $mw->LabFrame(-label=>'[ 2--> Führe Programm aus ]', -labelside => 'acrosstop') # Definition des RAHMENS.
->pack (-side=>'top', -expand=>1, -fill=>'x'); # Pack ...
my $doit_btn = $button->Button(-text=>'Ausführen', -command=> \&Programm_Ausfuehren) # Rufe Unterprogramm.
->pack(-side=>'left', -expand=>0); # EXPAND 0: button so groß wie Text.
my $exit_btn = $button->Button(-text=>'Ende', -command =>sub { $mw->destroy() })# Der Button "SCHLIEßEN".
->pack(-side=>'left', -expand=>0); # Pack ...
# *****************************************************************************
# ** Generiere AUSGABE-FENSTER für Ausgabe des Protokolles ********************
# *****************************************************************************
my $protokoll = $mw->Scrolled("Text", # Ein TEXT widget.
-scrollbars => 'osoe', # Optional SOUTH, Optional EAST.
-background => '#ffffff', # Hintergrundfarbe des Fensters.
-foreground => 'black', # Textfarbe
-width => 90, # Fensterbreite
-height => 20, # Fensterhöhe
-relief => 'sunken', # SUNKEN
-font => '{verdana} 10 {normal}',# FONT und FONT SIZE
-wrap => 'none') #
->pack(-side=>'top', -expand=>1, -fill=>'both'); # PACK ...
# *****************************************************************************
# ** Das abschließende TEXT LABEL *********************************************
# *****************************************************************************
my $MyLabel = $mw->Label(-text=>"© XYZ", -relief=>'groove')->pack();
MainLoop;
# *****************************************************************************
# ** Sub LADE PROGRAMM *******************************************************
# *****************************************************************************
sub Lade_Programm { # Start der Unterroutine "Lade Programm".
my $file_typ = [ # Definition der zu öffnenden Dateitypen.
['PERL Programm', '.pl' ], # Erster Eintrag = ".pl".
['Alle Dateien', '*' ], # Zweiter Eintrag = "*".
]; # Ende der Definition.
my $dn = $mw->getOpenFile(-filetypes=>$file_typ);# ???
if (defined $dn and $dn ne '') { # ???
$laden_entry->delete(0, 'end'); # ???
$laden_entry->insert('end', $dn); # ???
} # Ende der Schleife.
} # Ende der Unterroutine "Lade Programm".
# *****************************************************************************
# ** Sub Programm_Ausfuehren **************************************************
# *****************************************************************************
sub Programm_Ausfuehren {
# system($^X, "C:/TEST/a.pl"); # Führe dieses PERL-Programm aus.
}
1
2
3
4
5
6
open PROG,"$pfad_zum_programm|";
while(<PROG>)
{
# hier Code, um die Ausgabe zu bearbeiten, steht in $_
}
close PROG;
1
2
3
4
5
sub Programm_Ausfuehren {
my $proggi = $laden_entry->get(); #Eintrag holen
if(!$proggi){return 1;} # Nix machen wenn kein Program angegeben
$protokoll->insert('end', qx(perl.exe $proggi));
}
1
2
3
4
5
6
7
sub Programm_Ausfuehren {
my $proggi = $laden_entry->get(); # Eintrag holen (Name des auszuführenden PERL Programmes).
if(!$proggi){return 1;} # Keine Aktion wenn KEIN Program angegeben wurde.
$protokoll->insert('end', qx($^X $proggi)); # qx führt Programm aus und fängt Ausgabe ab.
# Mit $protokoll->insert('end', "ewrt"); wird das
# ganze gleich in dein Protokollfenster gesendet.
}
1
2
3
4
5
6
#!/usr/bin/perl
print "Zeile 1: Diesen Text am Bildschirm ausgeben\n";
print "Zeile 2: Diesen Text am Bildschirm ausgeben\n";
print "Zeile 3: Diesen Text am Bildschirm ausgeben\n";
print "Zeile 4: Diesen Text am Bildschirm ausgeben\n";
print "Zeile 5: Diesen Text am Bildschirm ausgeben\n";
QuoteZeile 1: Diesen Text am Bildschirm ausgeben
Zeile 3: Diesen Text am Bildschirm ausgeben
Zeile 5: Diesen Text am Bildschirm ausgeben
1
2
3
4
5
6
7
sub Programm_Ausfuehren
{
my $proggi = $laden_entry->get();
if(!$proggi){return 1;}
my $tmp = qx($^X $proggi);
$protokoll->insert('end', $tmp);
}
9 Einträge, 1 Seite |