TK Modul - komme null weiter

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TK Modul - komme null weiter

    Hallo,

    ich habe eine Aufgabe in Perl, die ich nicht so ganz hinbekomme. Ich lerne das aus einem Buch und soll bestimmte Aufgaben lösen. Manche sind sehr gut erklärt und bei manchen sitze ich ewig dran, :( wie bei dieser:

    Erstellen Sie mithilfe des Moduls Tk ein Perl-Skript mit grafischer Oberfläche, das die Möglichkeit bietet, eine Ausgangsdatei im Textformat (.txt) zu spezifizieren. Der User muss außerdem den Namen einer Ausgabedatei selbst festlegen können. Durch das Anklicken eines Button soll das Skript die bestehende Datei einlesen und jeweils an der ersten Stelle einer Zeile eine fortlaufende Zeilennummerirung einfügen. Außerdem müssen die festgelegte Ausgabedatei generiert und der Ergebnistext in diese Datei ausgegeben werden, wobei über die grafische Oberfläche (Listbox) die erforderliche Ausführung angezeigt werden soll. :?: :?:

    Das ist die Aufgabe, ich finde das alles sehr viel und verstehe nicht alles wie ich das umsetzten soll. Wie kann ich angeben das man nur .txt Dateien hoch laden kann und wie stelle ich eine Zeilennummerierung her?! Auch das mit dem Ausgeben ist mir nicht ganz klar. Ich habe das Buch jetzt vorwärts und rückwärts gelesen, aber entweder habe ich ein "Brett" vorm Kopf oder es steht einfach nicht drin.

    Hier mal mein Versuch:

    Quellcode

    1. #!/usr/bin/perl -w
    2. use strict;
    3. use TK;
    4. my $haupt = new MainWindow;
    5. $haupt->Label(-text => "Datei .txt")->pack();
    6. my $daten -> Listbox();
    7. $daten->pack();
    8. $haupt->Button(-text => "Einlesen")->pack;
    9. MainLoop();
    Alles anzeigen


    Und so denke ich mache ich das mit der Datei, aber wie einbauen?!

    Quellcode

    1. open (DATEI, " ")
    2. or die "Datei kann nicht ge\x94ffnet werden!\n";
    3. open (NEU, ">neu1.txt")
    4. or die "Datei kann nicht ge\x94ffnet werden!\n";
    5. close(DATEI);
    6. close(NEU);


    Vielleicht hat ja einer Lust mir das ganze mal zu erklären und mir zu helfen die richtige Lösung zu finden.

    Vielen Dank schon mal.


    Grüße
    green
  • Vorweg: Ich kann kein Perl, Code ist also nicht getestet. Aber aus selfhtml habe ich mir das folgende mal zusammengebastelt.

    Quellcode

    1. open DATEI, "datei.txt"; #Datei öffnen
    2. @dat = <DATEI>; # gesamte Datei einlesen
    3. close DATEI; #Datei schließen
    4. my $textalt;
    5. my $textneu="";
    6. my $i=0;
    7. foreach $textalt (@dat){
    8. $i++;
    9. $textneu .= $i . $textalt; # Ausgabetext zusammenstellen
    10. }
    Alles anzeigen


    Zum Upload. Da solltest du dich nicht an der Endung txt orientieren, sondern eher am content type plain/text. Google mal nach [google]perl upload content-type[/google]

    Einen Standard-Upload findest du hier:
    http://aktuell.de.selfhtml.org/artikel/cgiperl/file-upload/