Thread Tk::Pane scrolled Frame (14 answers)
Opened by Perlfreak at 2006-06-02 15:27

Gast Gast
 2006-06-06 13:15
#45568 #45568
Hallo Renee, Hallo ptk,
entschuldigt das ich mich erst jetzt wieder melde. Ich bin vor kurzem in ein Dorf im tiefsten Westen unserer Republik gezogen und hier habe ich noch keinen Telefon und damit auch keinen Internetzugang.

Zunächst zu ptk.
Nicht alle User sind zu faul oder zu doof um im Forum nach Lösungen zu suchen. Seit Jahren habe ich 80% der Lösungen aus den diversen Foren und 19% der Lösungen aus Büchern. 99% der Probleme sind schon mal in den Foren besprochen worden.
Ich hätte keine Anfrage gestellt wenn es einen gleichartigen Beitrag gegeben hätte.

So nun zu Renee,
Beim shellscript klappt alles (schreiben und lesen und Überschriften)
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl -w
use DBI;
my $dbh = DBI->connect("DBI:mysql:TEST;host=localhost","joe","");
my $EIN = <stdin>;
my $sth = $dbh->prepare("insert into Test (Name) values ($EIN);
$sth->execute;

nach der Eingabe von Umlauten kann ich mit MySQL-Query diese in der Tabelle korrekt lesen.
das gleiche auch beim Auslesen und anzeigen in der shell.

#!/usr/bin/perl -w
use DBI;
my $dbh = DBI->connect("DBI:mysql:TEST;host=localhost","joe","");
my $sth1 = $dbh->prepare("select * from Test");
$sth1->execute;
my $ref1 = $sth1->fetchrow_hashref())

print "Überschrift -- $ref1->{\"Name\"}\n";


Auch hier sind die Umlaute korrekt lesbar.


Nun zu Perl Tk.
Script Eingabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -w
use Tk;
use DBI;
my $dbh = DBI->connect("DBI:mysql:TEST;host=localhost","joe","");
my $Main=MainWindow->new();
$Main->minsize( qw(250 250));
$Main->maxsize( qw(250 250));
$Main->title("Eintest");
$Main->configure(-background=> 'blue' );
my $top=$Main->Frame(-background=> 'blue',)->pack(-side=>'top',-fill=>'both' );
$CELL = $top->Entry(-width=>10, -background=>'white', -textvariable =>\$EIN)->pack(-side=>'left' );
$CELL->bind("<Return>",&Schreiben);

sub Schreiben
{
my $sth2 = $dbh->prepare("insert into Test
(Name)
values($EIN);
$sth->execute;
}

Mit MySQL-Query sind die Umlaute in der Datenbank korrekt lesbar.
Während des eingebens erscheinen in dem Entryfeld aber nur 2 Sonderzeichen.


Script Ausgabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl -w
use Tk;
use DBI;
my $dbh = DBI->connect("DBI:mysql:TEST;host=localhost","joe","");
my $Main=MainWindow->new();
$Main->minsize( qw(250 250));
$Main->maxsize( qw(250 250));
$Main->title("Austest");
$Main->configure(-background=> 'blue' );
my $top=$Main->Frame(-background=> 'blue',)->pack(-side=>'top',-fill=>'both' );
$CELLE = $top->Label(-width =>10, -background =>'white', -text =>'Überschrift')->pack(-side=>'left' );
$CELLE1 = $top->Label(-width =>10,-background =>'white', -textvariable => \$AUS)->pack(-side=>'left' );
$sth3 = $dbh->prepare("select * from Test);
$sth3->execute;
my $ref3 = $sth3->fetchrow_hashref();
$AUS = $ref3->{"Name"};

Beim auslesen und anzeigen in Perl/Tk habe ich dann folgendes Problem.

Beim Überschrift Label werden anstatt "Ü" wieder 2 Sonderzeichen angezeigt.
Beim Label aus der Datenbank aber korekte Umlaute angezeigt.
Die Labeldefinition ist gleich.

Wieso ist bei gleicher Definition der Labelfelder das Anzeigeergebniss so unterschiedlich.

MfG
Perlfreak\n\n

<!--EDIT|renee|1149586910-->

View full thread Tk::Pane scrolled Frame