- Registriert
- 25.06.04
- Beiträge
- 393
Ok, also die richtig intensiven Sachen mache ich mittlerweile nicht mehr in AppleScript, sondern weiche auf perl oder andere Terminal-Anwendungen aus.
Ich sehe AppleScript da als Mittel zum Zweck, man kann schnell und recht einfach kleine Programme schreiben, die mit anderen kommunizieren können.
Wie sollte ich sonst ohne großen Aufwand für ein Perl-Script den Namen des Songs herausbekommen, den iTunes gerade spielt?
Hier mal ein Beispie, ich nenne es:
Perl Code in AppleScript ausführen, eine AppleScript Datei und der ganze Zeitaufwendige Code ist in Perl geschrieben.
Mit AppleScript Seriennummern zu generieren und dabei auch noch sicher zu gehen, dass keine doppelt ist, kann bei 10.000 schon etwas dauern.
mit dem Perl-Einschub nur ein paar Sekunden.
Ich sehe AppleScript da als Mittel zum Zweck, man kann schnell und recht einfach kleine Programme schreiben, die mit anderen kommunizieren können.
Wie sollte ich sonst ohne großen Aufwand für ein Perl-Script den Namen des Songs herausbekommen, den iTunes gerade spielt?
Hier mal ein Beispie, ich nenne es:
Perl Code in AppleScript ausführen, eine AppleScript Datei und der ganze Zeitaufwendige Code ist in Perl geschrieben.
Mit AppleScript Seriennummern zu generieren und dabei auch noch sicher zu gehen, dass keine doppelt ist, kann bei 10.000 schon etwas dauern.
mit dem Perl-Einschub nur ein paar Sekunden.
Code:
make_serials(100)
on make_serials(serialcount)
set sc to "#!/usr/bin/perl
###########################################################
# sub generate_random_string written by Guy Malachi http://guymal.com
# 18 August, 2002
###########################################################
# This function generates random strings of a given length
sub generate_random_string
{
my $length_of_randomstring=shift;# the length of
# the random string to generate
my @chars=('a'..'z','A'..'Z','0'..'9','_');
my $random_string;
foreach (1..$length_of_randomstring)
{
# rand @chars will generate a random
# number between 0 and scalar @chars
$random_string.=$chars[rand @chars];
}
return $random_string;
}
#Generate the random string
$serialcount = " & serialcount & ";
@myserials = ();
$arraycount = 0;
while ($serialcount > $arraycount) {
my $random_string=&generate_random_string(30);
$allreadyExists = 0;
foreach $serial (@serials){
if ($serial eq $random_string) {
$allreadyExists = 1;
last;
}
}
if ($allreadyExists eq 0) {
push(@myserials, $random_string);
} else {
$allreadyExists = 0;
}
$arraycount = 0;
foreach $k (@myserials){
$arraycount++;
}
}
foreach $k (@myserials){
print $k.\"#\";
}
" as text
set the clipboard to sc
set serials to do shell script "pbpaste | perl"
set AppleScript's text item delimiters to "#"
set seriallist to text items 1 through -2 of serials
set AppleScript's text item delimiters to ""
return seriallist
end make_serials