Leser: 22
2010-12-07T11:27:43 Mick1987Ich hoffe es findet sich wer :-)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/usr/bin/perl use strict; use warnings; my $ldoc = <<HERE_DOCUMENT; \\documentclass{scrlttr2} \\usepackage{german} \\usepackage[latin1]{inputenc} \\begin{document} Grüße aus Österreich! \\end{document} HERE_DOCUMENT $ldoc =~ s/Ö/\\"O/g; print $ldoc;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use strict; use warnings; use File::Basename qw/ basename /; use File::Spec; print "Datei: "; chomp(my $file = <STDIN>); exit unless length $file; print "Zielverzeichnis: "; chomp(my $dir = <STDIN>); exit unless length $dir; open my $fh, '<', $file or die "Konnte '$file' nicht öffnen: $!"; my $newfile = File::Spec->catfile($dir, basename($file)); open my $out, '>', $newfile o die "Konnte '$newfile' nicht öffnen: $!"; while (my $line = <$fh>) { # bearbeite $line print $out $line; } print "$newfile geschrieben\n";
2010-12-07T11:27:43 Mick1987Ich stelle mir das so vor:
Wenn ich das Programm geöffnet habe öffnet sich ein Fenster, in den ich den Dateipfad und den Zielordner eingeben muss. Danach erscheint ein Fenster, indem ich den Autor wähle (jeder Autor hat unterschiedliche Makros verwendet).
Danach startet das Programm und fängt an z.B. das Dokument auf Ö´s zu durchsuchen und ersetzt sie durch \''O...
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
#!/usr/bin/perl use strict; use warnings; use Tk; use Cwd; my @entries = getEntriesFromGUI(); foreach my $i (@entries) { print "$i\n"; } sub getEntriesFromGUI { my @res = (); my $mw = Tk::MainWindow->new(); $mw -> title("Latex-Macro-Changer"); if ($^O eq "linux") { $mw -> optionAdd("*font", "Arial 16"); } else { $mw -> optionAdd("*font", "Arial 10"); } $mw -> geometry("+320+200"); my $fr1 = $mw -> Frame(); my $lab1 = $fr1 -> Label(-text => "Ordner"); my $e1 = $fr1 -> Entry(-bg => 'white', -fg => 'black'); $e1 -> insert(0, Cwd::getcwd()); $e1 -> focus(); $lab1 -> pack(-side => 'left', -padx => 10); $e1 -> pack(-padx => 10); $fr1 -> pack(-pady => 10); my $fr2 = $mw -> Frame(); my $lab2 = $fr2 -> Label(-text => "Datei"); my $e2 = $fr2 -> Entry(-bg => 'white', -fg => 'black'); $e2 -> insert(0, "Dateiname"); $lab2 -> pack(-side => 'left', -padx => 10); $e2 -> pack(-padx => 10); $fr2 -> pack(-pady => 10); my $fr3 = $mw -> Frame(); my $lab3 = $fr3 -> Label(-text => "Autor"); my $e3 = $fr3 -> Entry(-bg => 'white', -fg => 'black'); $e3 -> insert(0, "Name des Autors"); $lab3 -> pack(-side => 'left', -padx => 10); $e3 -> pack(-padx => 10); $fr3 -> pack(-pady => 10); my $btn = $mw -> Button(-text => "OK", -command => sub { @res = ($e1 -> get(), $e2 -> get(), $e3 -> get()); $mw -> destroy(); }); $btn -> pack(-anchor => 'se', -padx => 10, -pady => 10); $mw -> bind('<Return>', sub { $btn -> invoke} ); Tk::MainLoop(); return @res; }