|
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
|
|
 |
|
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.
|
|
 |
|
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.
|
|
 |
|
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.
|
|
|
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).
|
|
|
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. 
|
|
|
|
Engish Version
|
|
|