sub import { my $import = $mw->Toplevel(); $import->title("Importieren"); my $auswahl_radio = 1; my      $windowHeight       = "540"; my      $windowWidth        = "540"; my      $screenHeight       = $import->screenheight; my      $screenWidth        = $import->screenwidth; $import->geometry($windowWidth."x".$windowHeight); $import->geometry("+".int($screenWidth/2 - $windowWidth/2)."+".int($screenHeight/2 - $windowHeight/2)); my $f1 = $import->LabFrame(-label => "Quelle",-labelside => 'acrosstop')->place(-x => 20,                          -y    => 30,  -height => 70, -width => 500                          ); my $Label1 = $import->Label(-text => "Import von Daten:",-anchor => 'w')->place( -x => 21, -y => 10, -height => 21, -width => 493); my $Label2 = $f1->Label(-text => "Quell-Datei:")->place( -x => 5, -y => 5, -height => 23, -width => 74); my $ein_entry = $f1->Entry(-width => 50, -relief => "sunken")->place( -x => 79, -y => 5, -height => 24, -width => 224); my $ein_btn = $f1->Button(-text    => 'Durchsuchen',                           -relief => "raised",                         -command =>                             sub {                                 my $typen = [                                     ['Datenbank',  '.dat' ],                                     ['Alle Dateien', '*'    ],                                 ];                                 my $dn = $import->getOpenFile(-filetypes  => $typen,                                                          );                                 if (defined $dn and $dn ne '') {                                     $ein_entry->delete(0, 'end');                                     $ein_entry->insert('end', $dn);                                 }                             },                        )->place( -x => 308, -y => 5, -height => 24, -width => 152); my $radioframe = $import->Frame()->place(-x => 40, -y => 100, -height => 60, -width => 480); my $Radiobutton1 = $radioframe->Radiobutton(                                     -text => "  (HINZUFÜGEN)  Neue Daten hinzufügen",     -variable => \$auswahl_radio,     -value => 1,     -anchor => 'w'                                     )->place( -x => 5, -y => 5, -height => 24, -width => 472); my $Radiobutton2 = $radioframe->Radiobutton(                                     -text => "  (ÜBERSCHREIBEN) Lokale Daten durch neue Daten ersatzen",     -variable => \$auswahl_radio,     -value => 2,                                     -anchor => 'w'                                     )->place( -x => 5, -y => 25, -height => 24, -width => 472); $hlist = $import->Scrolled( "HList", -header => 1, -columns => 3, -scrollbars => 'ose',         -width => 70,         -selectbackground => '#539FFD',               )->place( -x => 24, -y => 200, -height => 312, -width => 488); $hlist->header('create', 0, -text => 'Nummer'); $hlist->header('create', 1, -text => 'Name'); $hlist->header('create', 2, -text => 'Status'); my $Label4 = $import->Label( -textvariable => \$var_status,      -anchor => 'w',  -foreground => 'red' )->place( -x => 74, -y => 515, -height => 20, -width => 300); $var_status = ""; my $Button2 = $import->Button(                           -text => "Vorschau",                           -relief => "raised",   -command => sub {        $hlist->delete('all');    $var_status = "";    $eintragnr = 0;    $Datei_pfad = $ein_entry->get();    if ( not -e $Datei_pfad ) { $var_status = "Die Datei existiert nicht oder kann nicht gelesen werden!"; return; }            open (EINGABE, "<$Datei_pfad");    @vorschau = ;    close (EINGABE);    print "@vorschau";    foreach $einedatei (@vorschau) { @daten = split /->/, $einedatei; chop $daten[2]; $hlist->add($eintragnr); $hlist->itemCreate($eintragnr, 0, -text => "$daten[0]"); $hlist->itemCreate($eintragnr, 1, -text => "$daten[1]");     $hlist->itemCreate($eintragnr, 2, -text => "$daten[2]"); $eintragnr++; }   }                           )->place( -x => 48, -y => 160, -height => 23, -width => 127); my $Button3 = $import->Button(                           -text => "Import starten",                           -relief => "raised",   -command => sub {        $Datei_pfad = $ein_entry->get();    if ( not -e $Datei_pfad ) { $var_status = "Die Datei existiert nicht oder kann nicht gelesen werden!"; return; }            open (EINGABE, "<$Datei_pfad");    @neuedaten = ;    close (EINGABE);    if ( $auswahl_radio == 1 ) #Hinzufügen { open (EINGABE, "; close (EINGABE); foreach $einedatei (@neuedaten) { @list = split /->/, $einedatei; $test = $list[0]; foreach $einedatei2 (@schuelerdaten) { @list2 = split /->/, $einedatei2; $test2 = $list2[0]; if ($test == $test2)    {    $var_status = "Fehler!! Eine der neuen Schülernummern ist bereits vergeben! ";    $lbl_status->configure(-foreground => 'red');    return;    } } } push @schuelerdaten, @neuedaten; @schuelerdat = sort @schuelerdaten; open (AUSGABE, ">daten.dat"); print AUSGABE @schuelerdat; close (AUSGABE); $var_status = "Die Daten wurden erfolgreich hinzugefügt!";          $lbl_status->configure(-foreground => '#008000'); }    if ( $auswahl_radio == 2 ) #Überschreiben { open (AUSGABE, ">daten.dat"); print AUSGABE @neuedaten; close (AUSGABE); $var_status = "Die Daten wurden erfolgreich ersetzt!";          $lbl_status->configure(-foreground => '#008000'); }   }                           )->place( -x => 200, -y => 160, -height => 23, -width => 136); my $Button4 = $import->Button(                           -text => "Abbrechen",                           -relief => "raised",   -command => sub { $import->destroy() }                           )->place( -x => 361, -y => 160, -height => 23, -width => 126); my $Label3 = $import->Label(-text => "Status:",-anchor => 'w')->place( -x => 24, -y => 515, -height => 20, -width => 50); $ein_btn->focus(); }