Thread File Rename mit einer 'Drop Box' wie Kalender (8 answers)
Opened by OlliP at 2023-08-18 10:44

hlubenow
 2023-08-19 22:34
#195272 #195272
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Für die Tage jeweils ein Verzeichnis anzulegen (wie haj vorschlug), liegt ja nun recht nahe. Klar, so würde man das machen.

Nur aus Spaß und als theoretisches "proof of concept" trotzdem noch mal die Sache mit dem GUI. Also, man klickt auf die Zahl für den Tag, und das Skript versucht, den Dateinamen des geöffneten pdfs in der Linux-Prozessliste zu finden:
Code (perl): (dl )
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/perl

use warnings;
use strict;

use Tk;

package MyButton {

    sub new {
        my $classname = shift;
        my $self = {nr => shift};
        return bless($self, $classname);
    }

    sub createButton {
        my $self = shift;
        my $main = shift;
        my $frame = shift;
        $self->{button} = $frame->Button(-text => $self->{nr}, -command => sub { $main->btnClick($self->{nr}) });
        $self->{button}->pack(-side => "left", -pady => 5);
    }
}

package MyWindow {

    sub new {
        my $classname = shift;
        my $self = {};
        return bless($self, $classname);
    }

    sub createWindow {
        my $self = shift;
        $self->{mw} = MainWindow->new(-title => "pdfRename");
        $self->{mw}->optionAdd("*font", "Arial 15 normal");
        $self->{mw}->geometry("+400+256");
        $self->{mw}->bind("<Control-q>" => sub { $self->{mw}->destroy()});
        my ($i, $u, $mb, $frame);
        my $nr = 1;
        for $i (0 .. 3) {
            $frame = $self->{mw}->Frame();
            for $u (0 .. 7) {
                if ($i == 3 && $u == 7) {
                    next;
                }
                $mb = MyButton->new($nr);
                $mb->createButton($self, $frame);
                $nr++;
            }
            $frame->pack();
        }
        $self->{mw}->MainLoop();
    }

    sub btnClick {
        my $self = shift;
        my $nr = shift;
        my $a = $self->getPdfFilename();
        print "$a\t\t$nr\n";
    }

    sub getPdfFilename {
        my $self = shift;
        my $a = `ps x | grep pdf`;
        my @b = split(/\n/, $a);
        my $i;
        my @c;
        for $i (@b) {
            if ($i =~ /grep/) {
                next;
            }
            push(@c, $i);
        }
        if ($#c < 0) {
            print "\nWarning: No pdf-process found.\n";
            return "None";
        }
        $a = $c[0];
        chomp($a);
        @b = split(/ /, $a);
        for $i (@b) {
            if ($i =~ /\.pdf/) {
                return $i;
            }
        }
        print "\nWarning: No pdf-filename found.\n";
        return "None";
    }
}

my $app = MyWindow->new();
$app->createWindow();

Last edited: 2023-08-19 22:45:09 +0200 (CEST)

View full thread File Rename mit einer 'Drop Box' wie Kalender