TK Modul - komme null weiter

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • 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:

    Source Code

    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();
    Display All


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

    Source Code

    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.

    Source Code

    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. }
    Display All


    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/