Jerry Nagasakis Info-Page
 
Tool-Sammlung
Unten stehende kleine DOS- und Perl-Helferlein wurden von mir hier veröffentlicht, um es dem Programmierer einfach zu machen, Lösungen für bestimmte Probleme zu finden. Mir ist klar, daß hier nicht ein „Hochmaß“ an Programmiergeschick dargeboten wird, sondern bewußt einfache Algorithmen, die der Anwender ohne großes Zutun sofort ausführen kann.
Ich selbst bin es nämlich leid, im WWW immerzu nur komplexe „Lösungen“ zu finden, zu denen man gleich mehrere Bibliotheken herunterladen muß oder bei Perl immerzu irgendwelche CPAN-Module braucht, um am Ende festzustellen, daß alles doch nicht das war, was man gebraucht hat. Ich denke, gerade bei kleinen, einfachen Aufgaben geht das leichter.
Ich verwende daher bewußt keine „kryptischen“ Befehle, sondern einfach lesbaren Code, der sicherlich optimaler sein könnte. Anderes wäre daher kontraproduktiv für die Lesbarkeit und das Verstehen der Algorithmen.
Und natürlich ist das alles unsortiert und nur nach meinem Geschmack und meinen Anforderungen hier veröffentlicht. ;-)
 Copyright-Hinweis

home
M$-DOS- / Windoof-Tools geschrieben in C
Paint Shop Pro 6.x - 8.x Browser File Name Extractor
Dieses M$-DOS-C-Programm (getbrw.c) extrahiert aus einem PSP-Browser-File (pspbrwse.jbf) die Reihenfolge der arrangierten Bilder und schreibt jene Dateinamen in eine (plain-) Text-Datei namens "brwlist". Das Programm unterstützt lange Windoof2000+-Dateinamen. Nun in verbesserter, sicherer Version (1.1)

Umbenennen von Dateien aus einer Datei-Liste in eine alphabetische Reihenfolge
Dieses M$-DOS-C-Programm (renamer.c) generiert aus einer Text-Datei, die gültige Dateinamen enthält, eine M$-Batch-Datei zum Umbenennen jener Dateinamen (renfiles.bat). Der Anwender wird nach einem führenden "String" und einer nachfolgenden Nummer für den neuen Dateinamen per Tastatureingabe gefragt.
Die Text-Datei kann z. B. auch die oben erwähnte "brwlist"-Datei sein oder z. B. mit
  dir /B > brwlist
erzeugt werden (wobei "brwlist" dann dem <input-file> für "renamer.c" entspricht.).

Anwendung im M$-Dos-Fenster:
  renamer <input-file>
  Eingabe "String", z. B.: Mypix
  Eingabe "Startnummer", z. B.: 100
  Eingabe "Stellenanzahl", z. B.: 4

Nach Aufruf der generierten Batch-Datei (renfiles.bat) werden alle Dateiein, die in <input-file> gelistet sind, umbenannt zu:
  Mypix0100, Mypix0101, Mypix0102, ...

Dieses Programm ist für alle gedacht, die z. B. kein "Perl" auf ihrem Rechner haben.
Die Funktionalität dieses Programms gibt es auch als Perl-Skript weiter unten.

home
Perl-Skripte
Hinweis
Alle Perl-Skripte unten haben per Download die Datei-Endung ".pl_". Zum Verwenden diese bitte in ".pl" umbenennen.

Transparentes 1x1-Pixel Gif (CGI)
Um CGI-Skripte auf einer Web-Seite zu „verstecken“, benutzt man meist ein unsichtbares (transparentes) Gif-Image der Größe 1x1 Pixel. Das Skript kann hierzu die Daten eines „echten“ Gif-Images zurückgeben oder die Daten selbst zur Verfügung stellen. Dieses Skript gibt von sich aus das kleinstmögliche (42 Bytes) transparente 1x1-Gif-Image an die aufrufende Webseite zurück.

Bildgröße einer JP(E)G-Datei ermitteln (Local Perl)
Dieses Skript ermittelt die Höhe und Breite einer JP(E)G-Bilddatei. Der Algorithmus kann dazu verwendet werden, um HTML-Thumbnail-Ansichten, die eine gewisse Breite nicht überschreiten sollen, per Skript zu generieren.

HTML-Tabelle in CSV-Datei umwandeln (Local Perl)
Dieses Skript wandelt eine simple n*m HTML-Tabelle in eine Komma-Separiertes-Format-Datei (CSV) um.

CSV-Datei in eine HTML-Tabelle umwandeln (Local Perl)
Dieses Skript wandelt eine Komma-Separiertes-Format-Datei (CSV) in eine unformatierte HTML-Tabelle um.

Umbenennen von Dateien aus einer Datei-Liste in eine alphabetische Reihenfolge (Local Perl)
Dieses Skript hat die gleiche Funktion wie "renamer.c". (Siehe oben)

Generierung eines Html-Verzeichnisbaums aus einer CSV-Datei (Local Perl)
Bitte LIESMICH.html lesen.

Umbenennen von reinen Nummern- oder String-Präfix-JPG-Dateien zu durchnumerierten Dateien mit 5 führenden zufälligen Zeichen (Local Perl)
Es ist mitunter sehr nervig, wenn Webmaster auf ihren Seiten (Sie wissen schon, welche ich meine. ;-)) bei den Bildernamen eine derartige Einfallslosigkeit an den Tag legen, weil sie jene einfach nur "01.jpg", "02.jpg", "03.jpg", usw. oder "pp01.jpg", "pp02.jpg", "pp03.jpg", usw. genannt haben. Beim ersten Abspeichern mag dies noch keine Probleme machen, aber spätestens beim Besuch einer nächsten Seite mit identischen Bildernamen muß man zwangsläufig im "Speichern-unter-Dialog" per Hand einen neuen Dateinamen eintippen. Dies ist sehr unpraktisch und zeitintensiv.
Dieses Perl-Skript schaut im aktuellen Verzeichnis nach, ob solche "Reine-Zahlen-JPG-Dateien" existieren, ermittelt eine Zeichenkette aus fünf zufälligen Zeichen ([A-Z][a-z][0-9]) und benennt jene Dateien um, in dem es die Zeichenkette an den Dateinamen voranstellt.
Aufruf: perl namer.pl <String-Präfix, optional>

Jahreskalender berechnen (Local Perl)
Dieses Skript erzeugt einen in Halbjahre aufgeteilten ASCII-Kalender, berechnet automatisch Schaltjahre und die Wochentage. Die Spaltenbreite wird vom Anwender angegeben.
Ausgabe-Beispiel: kalender.txt.

Unterverzeichnis-Liste rekursiv erstellen (CGI / Local Perl)
Dieses Mini-Skript erzeugt eine Liste mit allen Pfaden zu beliebig vielen vorhandenen Unterverzeichnissen beginnend ab einem Basis-Verzeichnis. Es verwendet rekursive Aufrufe einer Sub-Routine. Die generierte Liste kann z. B. dazu verwendet werden, einen Verzeichnisbaum in „ASCII-Kunst“ zu zeichnen (Beispiel: drawtree.pl). Ausgabebeispiel: tree.txt
Update: Da bei vielen Dateien in den Unterverzeichnissen der rekursive Aufruf „ewig“ dauern kann, kann nun nur nach Verzeichnis-Einträgen ohne "." „gegrept“ werden. Erkauft wird dies jedoch mit dem Nachteil, daß keine Verzeichnisse mit einem Punkt im Namen wie system.$$$ gefunden werden. Der Aufruf erfolgt dann jedoch ca. 100mal schneller!

Berechnung der Summe aller Dateigrößen eines Stammverzeichnis und dessen Unterverzeichnisse (Local Perl)
Dieses Mini-Skript addiert alle Dateigrößen beginnend in einem Stammverzeichnis und aller Unterverzeichnisse. Optional kann die Dateiliste augegeben werden. Mir ist bewußt, daß dies viele Dateiverwaltungsprogramme auch können, aber manchmal ist die Ausgabe einer druckfähigen Liste erwünscht, um einen schnellen und einfachen Überblick zu erhalten.
Update: Bitte „Speed-up-Hinweis“ beachten. Erklärung: "dirtree"-Perl-Skript oben.

Ausgabe einer Liste aller Dateien sortiert nach Größe in einem Stammverzeichnis und dessen Unterverzeichnissen (Local Perl)
Manchmal ist es schwierig in weit verzweigten Unterverzeichnissen große Dateien aufzuspüren. Gerade bei USB-Sticks kann es nützlich sein, diese Dateien aufzuspüren. Dieses Skript durchforstet alle Unterverzeichnisse beginned von einem Stammverzeichnis aus und listet anschließend alle Datein der Größe nach auf. Die Anzahl der angezeigten Dateien kann als Option angegeben werden.
Update: Bitte „Speed-up-Hinweis“ beachten. Erklärung: "dirtree"-Perl-Skript oben.

home
Perl-Tip für Windoof-User (2K, XP)
Für einen einfachen Perl-Skript-Aufruf im UNIX-/Linux-Stil ohne .pl-Endung, ohne perl.exe-Präfix aber mit Argumenten wie z. B.
  skriptname arg1 arg2 ...
bitte help ftype in der DOS-Konsole eingeben und den Instruktionen folgen.

home
Kompilieren der C-Source-Codes
Kompilierte EXE-Versionen der oben gelisteten C-Source-Files gibt es auf Anfrage vom Webmaster.

Zum selber-kompilieren bitte einen gängigen C-Compiler wie gcc benutzen.

Für Windoof-Rechner bitte das M$-DOS-C-Compiler-Paket von DJ DELORIE herunterladen, die „Installationsanweisungen“ anschließend befolgen und den betreffenden C-Source-Code mit
  gcc <filename>.c -O2 -s -o <filename>.exe
im M$-DOS-Fenster kompilieren.

Alternativ kann auch die freie Entwicklungsumgebung LCC-WIN32 verwendet werden. In diesem Fall bitte ein DOS-Konsolen-Projekt aus Ausgangsbasis nehmen und mit dem mitgelieferten make die entsprechende EXE-Datei erzeugen.

Wenn die erzeugte <filename>.exe-Datei ins Windoof-Verzeichnis (c:\WINNT) kopiert wird, ist sie dann in jedem Verzeichnis ausführbar (oder Systempfad-Variable anpassen).

home
Wichtiger Hinweis / Haftunsausschluß
Alle Source-Codes auf dieser Unterseite sind frei verwendbar für jeden Anwender. Jene wurden alle von mir selbst geschrieben und es bestehen keine Urheberrechte. Sie können vom Anwender beliebig verwendet, verändert und angepaßt werden.
Ich übernehme keinerlei Haftung für etwaigen Datenverlust der dem Anwender durch Verwendung dieser Codes entstehen könnte. Die Verwendung geschieht auf eigene Gefahr des Anwenders. Die Codes sind nicht vollständig getestet und dienen in erster Linie Demonstrationszwecken.

Es wäre dennoch nett, wenn bei Modifikationen und Derivarten dieser Programme und Skripte mein Name wenigstens in den Kommentarzeilen „überleben“ wüde. ;-)

home Engish Version