![]() |
Willkommen, Gast ( Anmelden | Registrierung )
![]() ![]() |
![]() |
![]()
Beitrag
#11
|
|
Weiss zuviel!! ![]() Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 ![]() |
Hallo Conny,
nun, da gibt es nichts zu lachen. Es ist einfach nur kein CGI-Script. Es kann folglich auch nicht über einen Browser oder ähnliches, was das HTTP-Protokoll verwendet, aufgerufen werde. Deswegen bekommst Du lediglich den Quelltext angezeigt. Im vorliegenden Zustand ist es nur für den lokalen Betrieb gedacht. Am besten Du legst ein Verzeichnis an; z.B. c:\programme\perlen und da kopierst Du das script hinein; z.B. als pic_find.pl dann legst Du eine kleine pic_find.bat mit dem Inhalt an: QUELLTEXT @echo off c:\perl\bin\perl.exe c:\programme\perlen\pic_find.pl > c:\programme\perlen\bilder_not_used.txt notepad c:\programme\perlen\bilder_not_used.txt Dann verlinkst Du diese Batch auf den Desktop und kannst das Ganze mit Doppelklick starten. Das Scanergebnis geht in eine Datei und wird von Notpad angezeigt. |
|
|
![]()
Beitrag
#12
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hi Ingo,
Klar ist es kein CGI-Script, aber der Server sieht vor, daß auch Perl-Scripte in den cgi-Ordner abgelegt werden müßen. Das Perl-Script für den Counter liegt ja auch da, also habe ich mir gedacht: "schau-mir-mal". Schade eigentlich, daß das nicht geht.... Das mit der bat-Datei werde ich wohl hinbekommen! Danke ![]() cu Conny |
|
|
![]()
Beitrag
#13
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
So, da bin ich wieder.
*.bat gemacht, geschrieben, gibt aber folgende Fehlermeldung: QUELLTEXT Can't locate strickt.pm in @INC <@INC contains: .> at D:Website\cgi-bin\nup.pl line 4. BEGIN failed--compilation aborted at D:Website\cgi-bin\nup.pl line 4. Zeile 4 in der Perl-Datei ist bei mir: use strict; Mir scheint, irgendwas wird nicht gefunden? cu Conny |
|
|
![]()
Beitrag
#14
|
|
Weiss zuviel!! ![]() Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 ![]() |
Hallo,
nun das ist mir jetzt vollkommen unverständlich. Die Fehlermeldung sagt, dass das Modul stickt.pm nicht gefunden wird, das hab ich aber nicht benutzt, weil es das gar nicht gibt. Also mach wir das folgende: Du nimmst den foldenden Code und ersetzt damit den in Deiner Perldatei. Dann passt Du noch die beiden Verzeichnisse an und veruchst es noch einmal. QUELLTEXT #!c:/perl/bin/perl # finde nicht verwendete bilder use strict; use warnings; use File::Find; my $home; my $picture_dir; my $picture; my @picture_files; my @html_files; my $html; my $scan_result; my $not_used=0; # hier das standardverzeichnis eintragen, aus dem die dateien gescannt werden sollen $home = 'c:/home/ingo/html/interpro_neu'; # hier das standardverzeichnis der bilder eintragen $picture_dir = 'c:/home/ingo/html/interpro_neu'; if ($ARGV[0]) {$home = $ARGV[0];} $home =~ s/\\/\//g; if ($ARGV[1]) {$picture_dir = $ARGV[1];} else {$picture_dir = $home;} $picture_dir =~ s/\\/\//g; # zu scannende dateien suchen find(\&find_html, $home); # bilder suchen find(\&find_picture, $picture_dir); print 1+$#html_files." HTML- und CSS-Dateien in $home gefunden.\n"; print 1+$#picture_files." Bilder in $picture_dir gefunden!\nDavon werden nicht verwendet:\n"; # zu scannende dateien sortieren @html_files = sort {uc($a) cmp uc($b)} @html_files; # bilder sortieren @picture_files = sort {uc($a) cmp uc($b)} @picture_files; foreach $picture (@picture_files) { foreach $html (@html_files) { #hier wird der scanner gerufen $scan_result = &scan($html, $picture); # wenn ein treffer gefunden, dann naechstes bild hernehmen if ($scan_result) { last; } } # wenn kein treffer, ausgeben und zählen unless ($scan_result) { print "$picture \n"; $not_used ++; } } print "Insgesamt werden $not_used Bilder nicht verwendet!\n"; # bilder finder --------------------------------------------------------------- sub find_picture { my $akt_file = $File::Find::name; push @picture_files,$akt_file if ($akt_file =~ /\.(jpg|gif|png)$/i); } # zu scannende dateien finden ------------------------------------------------- sub find_html { my $akt_file = $File::Find::name; push @html_files,$akt_file if ($akt_file =~ /\.(.?htm.?|css)$/i); } # löschen der gemeinsamen teile in den pfadangaben ---------------------------- sub del_common { my ($html, $picture_dir) = @_; my @html_dir; @html_dir = split('/', $html); foreach (@html_dir) { $picture_dir =~ s/^$_\///i; } return $picture_dir; } # aktuelle datei scannen ------------------------------------------------------ sub scan { my ($html,$picture)=@_; my $html_content; my $found; undef $/; $picture = del_common($html, $picture); open (IN,"< $html"); $html_content=<IN>; close IN; $found = $html_content =~ /$picture/; return $found; } Das ist bei mir ohne Fehler durchgelaufen und arbeitet jetzt richtig gut. Es ist jetzt auch möglich, dass man der Batch zwei Parameter übergibt: pic_find.bat c:\home\html\interpro\schulen c:\home\html\interpro\bilder Dafür muss die Batch noch so geändert werden: QUELLTEXT @echo off c:\perl\bin\perl.exe c:\programme\perlen\pic_find.pl %1 %2 > c:\programme\perlen\bilder_not_used.txt notepad c:\programme\perlen\bilder_not_used.txt Wenn man den zweiten Parameter weglässt geht das Script davon aus, dass er wie der erste heißen soll. Wird nichts übergeben, werden die Standardverzeichnisse genommen wie sie im Script angegeben sind. (siehe Kommentare) Gibt es eigentlich eine Möglichlkeit, dass ich das Script hier irgendwie hochladen kann, damit ich nicht immer alles posten muss? Ich mach aber erst mal Schluss für heute. Es gibt einen guten Südtiroler Lagrein (Rotwein) und eine lecker "Weib" die auf mich warten ![]() Der Beitrag wurde von i.b.g bearbeitet: 19.02.2005 - 19:16 |
|
|
![]()
Beitrag
#15
|
|
Weiss zuviel!! ![]() Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 ![]() |
Hallo,
wenn man einen Link auf eine Batch-Datei angelegt hat, dann kann man einige Einstellungen in den Eigenschaften (Rechtsklick auf die *.lnk-Datei) vornehmen, die das Leben angenehmer machen. Für den hier diskutierten Fall könnte das sein: Registerkarte Programm 1. in der Befehlszeile an das Ende ein Leerzeichen+? - Wirkung: man bekommt beim Start der *.lnk ein kleines Fenster wo man die Parameter für die Batch eingeben kann. 2. Ausführen wird auf "Minimiert" gesetzt - Wirkung: es geht kein DOS-Fenster auf sondern nur das Feld in der Taskleiste. 3. Ein Häkchen bei Beenden beim Schließen - Wirkung: das DOS-Fenster wird automatisch geschlossen, wenn der letzte Befehl der Batch abgearbeitet ist. Wer dann noch will, kann der *.lnk ein anderes Symbol zuordenen. Sollte ich jetzt Trivialitäten genannt haben, so bitte ich um Entschuldigung. ![]() |
|
|
![]()
Beitrag
#16
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Moin Ingo,
ohne Dich jetzt -am Sonntagmorgen- auf die nerven gehen zu wollen, aber, auch nach einsetzen des letzten Codes bleibt es exakt bei der gleichen Fehlermeldung von weiter oben. Es *stolpert* über die aufforderung: 'use strickt' und meldet: Can't locate strickt.pm in @INC <@INC contains: .> at D:Website\cgi-bin\nup.pl line 4. Warum auch immer.... cu Conny |
|
|
![]()
Beitrag
#17
|
|
Weiss zuviel!! ![]() Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 ![]() |
Hallo,
ZITAT(Conny @ 20.02.2005 - 10:59) ohne Dich jetzt -am Sonntagmorgen- auf die nerven gehen zu wollen ... Ach wo, das ist schon in Ordnung, denn es muss ja funktionieren. Ich hab meine Datei mal >> HIER << als Zip abgelegt. Du kannst Sie dort abholen. Sollte es dann immer noch nicht laufen, dann schreib einfach mal ein # vor die Zeile, denn eigentlich wird Sie nur benötigt, um bei der Programmierung Larry's Konventionen einzuhalten. Das muss doch zu packen sein! |
|
|
![]()
Beitrag
#18
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hi Ingo,
ZITAT(i.b.g @ 20.02.2005 - 11:24) ....Sollte es dann immer noch nicht laufen, dann schreib einfach mal ein # vor die Zeile... Die Idee (es aus zu kommentieren) hatte ich auch schon, hat leider nichts gebracht! Denn, die Fehlermeldung wiederholt sich dann einfach mit der nächsten Zeile: use warnings. Inzwischen glaube ich, daß es an der perl.exe liegt! (das ist die exe die bei xampp-light dabei war) Könntest Du mir nicht mal Deine perl.exe zukommen lassen? Damit wäre es unter Umständen schon aus der Welt! cu Conny |
|
|
![]()
Beitrag
#19
|
|
Weiss zuviel!! ![]() Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 ![]() |
Hallo Conny,
das ist ja wie verhext. Ob das an der perl.exe liegt, vermag ich nicht zu sagen. Ich glaub es aber nicht. Ich hatte auch gehofft Andreas meldet sich noch einmal. Zunächst kannst Du die Zeile use warnings; auch auskommentieren. Nur die use File::Find; ist dringend notwendig, weil das Modul die Dateibäume durchsucht. Starten und "gucken wat er macht". Geht es wieder schief, dann solltest Du mal folgendes auf der Kommandozeile eingeben: c:\> perl -V > perlvers.txt Den Inhalt der perlvers.txt würde ich gern mal sehen; es könnte nämlich sein, dass Perl gar nicht richtig installiert ist, dann hilft die perl. exe auch nichts. Besonders interessant ist der Abschnitt am Ende: QUELLTEXT Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS Locally applied patches: ActivePerl Build 635 Built under MSWin32 Compiled at Feb 4 2003 15:34:21 %ENV: PERL="C:\PERL\bin" @INC: C:/Perl/lib C:/Perl/site/lib . |
|
|
![]()
Beitrag
#20
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hi Ingo,
langsam kommen wir die Sache näher. So wie es aussieht ist Perl tatsächlich nicht, oder nicht richtig installiert! Es gibt zwar eine Perl.exe bei mir auf dem Rechner, allerdings nicht wo man ihm vermuten wurde (C:\perl\bin) sondern in ein Apache-Ordner auf D: (Dort wo Apache auch instaliert ist.) Neben der Perl.exe gibt es nur noch die perl58.dll (ich nehme mal an, Version 5.8) und sonst nichts! Auf der Kommandozeile: D:\Apache\perl\bin\perl -V > perlvers.txt eingegeben gibt wieder eine Fehlermeldung: 'Kann Config.pm nicht finden'. Die txt wird zwar erstellt, bleibt aber leer. Fazit: Keine oder fehlerhafte installation! Frage: Wie und wo bekomme ich Perl heruntergeleden und richtig installiert? cu Conny |
|
|
Google Bot |
![]()
Beitrag
#
|
![]() Google Ads ![]() |
|
|
|
![]() ![]() |
![]() |
Vereinfachte Darstellung | Aktuelles Datum: 30.04.2025 - 10:29 |