Downloads von Peter Sulzer (MCP für Programming in C# - Exam 70-483, siehe hier)

Folgende Programme werden auf dieser Seite angeboten (Bilder finden sie auf der: Startseite)

Java Package "utils.casts" – Java package with class IntBox with a tryParse-Methode similar as in C#
Coca – Taschenrechner mit Expression Parser (Windows, OS/2)
charConvert – Zeichen in Dateien durch Zeichen(folgen) ersetzen (Windows)
PureLink – Verfälschte Links (von z. B. Facebook) in pure (unverfälschte) Links zurückverwandeln (Tracking verhindern) NEU
addnew – Verzeichnisse synchronisieren, Kommandozeilenprogramm (Windows)
Aliza – eine Eliza Implementation für Android

Java Packages

Java Package utils.casts for developers is on its own page and is in English!


Hinweis: Das Verhalten beim Klick auf einen der Download-Links kann (muss) in den Browser-Einstellungen festgelegt werden. Bei z. B. Firefox gibt es zwei Möglichkeiten. Bei der Einstellung, in der immer in das selbe Verzeichnis (z. B. Downloads) heruntergeladen wird, wird die Datei nach Klick auf den Download-Link ohne Nachfrage(!) (das war in Firefox-Versionen vor 98.0 anders, da kam zuvor noch ein Bestätigungs-Dialog) sofort in den eingestellten Ordner heruntergeladen. Nur bei der Einstellung „Jedes mal nachfragen, wo eine Datei gespeichert werden soll” kommt ein Dialog, bei dem Sie das Zielverzeichnis auf Ihrem Rechner auswählen können.

Bei Firefox kann das alte Verhalten (Bestätigungs-Dialog) wieder hergestellt werden. Dazu muss man durch Eingabe von „about:config” in der Adresszeile die erweiterten Einstellungen aufrufen und „browser.download.improvements_to_download_panel” auf false setzen. Detailierte Anleitung in englisch hier. Diese Einstellung stellt einen besseren Schutz vor dem ungewollten Herunterladen von Dateien dar.

PC-Programme

Coca - COmbobox CAlculator mit Expression Parser (geschrieben in C++)

Eine Taschenrechner-Applikation die ganze Ausdrücke wie z. B.:

(2+6*sin(30)*4) / (0.7 * 2 + .6)

berechnen kann. (Um den Ausdruck, der in der Eingabezeile der Combobox steht, zu berechnen, die Taste CR klicken oder die Eingabetaste drücken.) Er beherrscht Variablen (Speicher) mit beliebigen Namen, z. B. Mwst=1.19 und dann z. B. Preis=13.84*Mwst (das Dezimaltrennzeichen ist der Dezimal-Punkt(!)). Alle in C++ vorhandenen mathematischen Funktionen mit einer Variablen werden unterstützt. Der Potenz-Operator ist das ‚^’ (Taste mit dem ‚^’ drücken und danach die Leertaste). Es werden auch Brüche für den Exponent unterstützt, z. B. .5, um die Quadratwurzel zu ziehen. Klappt man die Combobox auf, erhält man die Liste mit den (bis zu) 40 letzten eingegebenen Ausdrücken, damit man diese leicht ändern kann. Das Ergebnis einer Berechnung wird automatisch in die Zwischenablage (Clipboard) übernommen (abschaltbar). Dank der virtuellen Tastatur kann er auch über Sprachbefehle bedient werden, falls ein geeignetes Spracherkennungsprogramm installiert ist (bei OS/2 serienmäßig dabei) und, wichtiger für Windows ≥8.x, er funktioniert natürlich auch mit Touchscreens, ohne die Bildschirmtastatur von Windows bemühen zu müssen (habe jetzt ein Windows 10 Tablet und habe es getestet).

Dokumentation gibt es zur Zeit leider nur in Englisch (bis auf eine Kurzanleitung). Ich möchte betonen, dass ich den Parser, der den mathematischen Ausdruck aus einem String-Ausdruck parst, selbst geschrieben habe. Na gut, nicht ganz, natürlich musste auch ich lernen, wie man einen "Rekursiv absteigenden Parser" (recursive descendant parser) schreibt (habe ihn aber um Potenzen und alle mathematischen Funktionen mit einer Variablen erweitert). Ich habe das noch mit dem "Stroustrup" 2. Auflage gelernt :-) Da hat er die Variablenverarbeitung noch mit einer einfachen Hash-Funktion selbst programmiert. In der aktuellen deutschen Auflage (C++ 11) macht er es sich einfach und verwendet einfach ein "dictionary" (sorry, dictionary heißt es in Python, in C++ 11 heißt das natürlich „map”).

Last but not least: Das Stroustrup-Programm war ein reines Kommandzeilenprogramm. Die ganze GUI, einschließlich der virtuellen Tastatur (die kam erst 2005 dazu) wurde von mir zunächst für OS/2 entwickelt und später für Windows (zunächst nur für 16-Bit) portiert. Die virtuelle Tastatur für Windows hat leider einen "Bug" (ich befürchte der Bug ist in Windows - ganz tief drin und wird nie mehr korrigiert werden), lesen Sie hierzu bitte die Coca-Dokumentation (leider nur in Englisch - Übersetzer für Deutsch sehr willkommen, werden dann auch im Changelog erwähnt).

coca.exe als selbst entpackendes RAR-Archiv für Windows (kann mit RAR geöffnet werden)
(811 mal heruntergeladen)

coca.zip als ZIP-Archiv für OS/2
(711 mal heruntergeladen)

"coca.exe" herunterladen und ausführen, oder falls es Ihr Browser unterstützt, die Datei "coca.exe" direkt aus dem Webbrowser ausführen lassen. Mein neuer Provider erlaubt das Hochladen von *.exe-Dateien (auführbare Dateien ["Programme"] für DOS/Windows), und ich habe das jetzt endlich geändert :-) Doppel-Klick auf coca.exe startet einen Dialog, in dem Sie auswählen können, wo Sie die Programmdateien entpacken wollen. Lesen sie danach am besten zunächst die Datei "readme.txt", indem Sie diese vom Windows Dateimanager aus z. B. auf Ihren Webbrowser "ziehen".

JA(!) *.exe-Dateien sind gefährlich, können z. B. Viren enthalten. Glauben Sie wirklich, ich würde auf meiner Seite, mit meinem eigenen Namen, Dateien anbieten, die ihr Windows-System kompromittieren(!). Natürlich kann auch ich leider nicht ausschließen, dass meine Seite "gehackt" wird (bzw. die meines Providers) und sich dann doch ein Virus hinter "coca.exe" verbirgt. Falls Sie mir nicht vertrauen, können Sie coca.exe selbstverständlich auch mit einem gängigen Packerprogramm (WinRAR, WinZIP, 7-Zip, ...) öffnen und sich den Inhalt des Archivs ansehen. Oder benennen Sie die Datei in coca.rar um (benennen Sie sie aber besser nicht in coca.zip um, auch wenn z. B. 7-Zip sie dann trotzdem öffnen kann), damit Sie sie nicht versehentlich ausführen köhren können. Bild finden Sie auf meiner Startseite

Bei OS/2-Nutzern gehe ich davon aus, dass sie ein "ZIP" entpacken können und coca.exe in der WPS verlinken können.

Zum Starten von Coca langt es aus, die Datei "Coca.exe" zu starten. Z. B sie in einem Dateimanager wie dem "Windows Explorer" mit einem "Doppel-Klick" anzuklicken.


charConvert - Buchstaben in Dateien ersetzen (C# WPF-Anwendung)

Dieses Programm ersetzt beliebige Zeichen (keine Zeichenfolgen [Strings]) in Dateien durch beliebige Zeichenfolgen. Es hat einen HTML-Modus, in dem es alles was zwischen den HTML-Tag-Begrenzern (< und >) steht ignoriert (nichts ersetzt).

Daher eignet es sich z. B. ideal um deutsche Umlaute und Sonderzeichen wie z. B. ein 'ä' durch den entsprechenden HTML-Namen (&auml;) zu ersetzen. Dies ist zwar bei den meisten Webservern nicht mehr notwendig, wenn sie die Dateien direkt laden. Importiert man aber Dateien über PHP dann werden echte Umlaute nicht dargestellt. Mit charConvert kann man so ein ganzes Verzeichnis mit HTML-spezifischen Dateien schnell in einem einzigen Durchgang umwandeln. Dies habe ich auch bei dieser Webseite so gemacht, als ich sie von Frames auf CSS (Cascaded Style Sheets) umgestellt habe. Seit Version 1.1 können auch die Zeilenendezeichen gewandelt werden, wodurch man z. B. Dateien von/zu fremden Betriebssystemen konvertieren kann. Zwei *.ini-Dateien für die Konvertierung von/zu QDOS (Multitasking-Betriebssystem des Sinclair QLs) werden mitgeliefert.

Die eigentliche Bearbeitungsroutine läuft in einem eigenen Thread. D. h. während die Bearbeitung läuft, kann man z. B. bereits die Dateien in einem anderen Verzeichnis auswählen. Dies wird man allerdings nur bei riesigen Verzeichnissen bemerken. Normale Verzeichnisse wie mein htdocs-Verzeichnis werden im Bruchteil einer Sekunde komplett bearbeitet. Sollten Fehler auftreten (z. B. Datei konnte nicht bearbeitet werden, weil sie schreibgeschützt ist), werden diese Dateien nach der Bearbeitung in einem weiteren modalen Fenster angezeigt.

Beim Start liest das Programm die Datei charConvert.ini ein, falls sie sich im selben Verzeichnis wie charConvert.exe befindet. Achtung dies funktioniert beim Starten von manchen alternativen Dateimanagern aus, wie z. B. Q-Dir nicht (korrigiert ab Q-Dir Version 6.46), mit dem Windows File Explorer gibt es keine Probleme (mit der Aufrufoption " -ini IniDateiname.ini" kann auch eine Datei vorgegeben werden). In dieser Datei (eine Beispieldatei mit ausführlichen Erläuterungen in den Kommentaren ist im Archiv dabei) kann man diverse Voreinstellungen machen, die beim Programmstart ausgewertet werden. "charConvert.ini" kann mit einem beliebigen Texteditor wie z. B. dem "Editor" von Windows (Notepad.exe) bearbeitet/erstellt werden, Textcodierung muss "ANSI" sein (Default), nicht aber mit einem Textprogramm wie Word. Im Verzeichnis in dem charConvert.exe liegt muss außerdem ein Unterverzeichnis mit dem Namen "de-DE" existieren, in dem sich die Datei "charConvert.resources.dll" (mit den deutschen Texten) befinden muss. Sonst "spricht" das Programm nur Englisch. Wichtig: Zur Zeit kann charConvert nur Dateien mit ANSI-Codierung korrekt bearbeiten, bei UTF-8 codierten Dateien funktionieren viele Sonderzeichen nicht, z. B. das Paragraph-Zeichen '§'(!).

Getestet wurde das Programm bislang nur unter Windows 10, es ist in jedem Fall das .NET-Framework 4.0 notwendig. Unter meinem verbliebenen Windows XP Rechner, läuft es nicht.

charConvert.exe als selbst entpackendes Archiv (*.rar) für Windows
(617 mal heruntergeladen)

Es gibt auch wieder den Quellcode. Da in Visual Studio (ich nutze VS 2015, aktuellste Version) Verweise notwendig sind, habe ich die komplette "Arbeitsmappe" mit allen Verzeichnissen einschl. der ausführbaren Datei hochgeladen. Man sollte also die charConvert.sln direkt in Visual Studio öffnen können. Git ist auch schon eingerichtet (dazu müssen Sie natürlich Git auf Ihrem System installiert haben).

charConvert.zip für Visual Studio, komplette Arbeitsmappe (348 KByte)
(331 mal heruntergeladen)


PureLink – Programm das Links (z. B. von Facebook) „säubert”, damit Sie nicht so leicht nachverfolgt (getrackt) werden können

Auf vielen Webseiten werden Links verändert. Z. B. macht Facebook aus einem Link auf meine Homepage (http://peter-sulzer.bplaced.net) folgendes:

https://l.facebook.com/l.php?u=http%3A%2F%2Fpeter-sulzer.bplaced.net%2F%3Ffbclid%3DIwAR0Ax-7tcwsAv-Lc1o5Kwc3wDrSXzvARZg_TnWLVUOViuxLiAJb4QnJ99QI&h=AT39onJyefVoRe0JqLeaP9J0M4L7gYas8MF29Cznr2vMdMSBwmba7UrBSCj0unVyHctaAm9VXBLKEayn3x_BydrH7ojZiX6JfwBO7ybK8KplQ2xUJJpvWBGEpefniPbTygIMW44H1RGsIk2orEbG&__tn__=-UK-R&c[0]=AT0_7ItHPKvZ9W-_wDIM_dVaVSgnX0b4VyXxpPvGZ4CltVK5L89KyZpF3C1774fHTOVGjOefBSeYB-XkWmw6JYs1l7a_D5qPA1VicTeR1Kkln6hAAg8nrFVevJxoZUS_oZ429qEaBQvIWLxc5po

Mit PureLink können sie daraus einfach den unverfäschten Link erstellen (und anzeigen [http://peter-sulzer.bplaced.net/]) und mit einem weiteren Klick, diesen in die Zwischenablage (Clipboard) kopieren. Dann können sie diesen in einem anderen Tab oder privaten Fenster in die Adresszeile einfügen, um diese aufzurufen.

Gehen Sie folgendermaßen vor: Klicken Sie den Link mit der rechten Maustaste an, es erscheint ein Kontextmenü, wählen Sie den Eintrag „Copy Link” (so heißt es bei meinem englischen Windows unter Firefox, eine andere Möglichkeit könnte z. B. „Link kopieren” sein; ich vertraue hier auf Ihre Intelligenz, dass Sie den richtigen Menüpunkt finden). Dann wechseln Sie zu PureLink bzw. starten es. Klicken Sie dann auf die Schaltfläche (Button) Insert Clipboard Content, wodurch der gerade (eventuell verfälschte) Link in die darüberliegende Textbox eingefügt wird und der gesäuberte Link in die untere Textbox. Diesen können Sie bei Bedarf noch verändern. Bislang hat mein Programm zwar gut funktioniert, aber ich kann das nicht für alle Seiten garantieren. Bei Facebook klappt es gut. Durch einen Klick auf Copy Pure Link to Clipboard kopieren Sie den gesäuberten Link in die Zwischenablage. Öffnen Sie in Ihrem Browser einen neuen Tab oder noch besser ein neues privates Fenster, klicken Sie mit rechter Maustaste in das Adressfeld oben und wählen Sie (Firefox) im Kontextmenü „Paste & Go” bzw. (deutsches Windows) „Einfügen und aufrufen”. Jetzt sollte die Seite aufgerufen werden, ohne, dass die Seite mit dem Link Sie nachverfolgen (tracken) kann.

To Do: Momentan gibt es keine Rückmeldung wenn man den Button (die Schaltfläche) Copy Pure Link to Clipboard anklickt (aber es funktioniert natürlich trotzdem).

PureLink.exe für Windows 10 (andere Versionen nicht getestet, eventuell funktioniert es auch mit Windows 7) als ausführbare Datei (muss nicht entpackt werden [starten durch z. B. Doppelklick im Windows Explorer {Dateimanager}] – 12 KByte).
(223 mal heruntergeladen) Wegen des Fehlers (der Webseite, nicht des Programms), der hier mal stand: Das ist durch eine Änderung des Firefox Browsers ab Version 98.0 bedingt. Siehe ziemlich oben auf der Seite den Hinweis.

Hier noch das Programm als Zip-Archiv, da es oft nicht möglich ist, *.exe-Dateien herunterzuladen:

PureLinkWPF4v5.zip
(133 mal heruntergeladen)

Natürlich wird jetzt sofort der Einwand kommen „Aber da gibts doch das Firefox-Plugin ClearUrls. Das habe ich natürlich hier auch installiert (und empfehle jedem, das ebenfalls zu installieren). Leider habe ich durch Tests festgestellt, dass da anscheinend doch ab und an Cookies gesetzt werden, was ich bei meinem Programm noch nicht feststellen konnte. Da ich Links von Android-Hilfe, Facebook, ... sowieso nur noch in privaten Fenstern öffne, und ich PureLink mittlerweile immer geöffnet habe (dank .NET [ohne Core, PureLink ist eine WPF-Anwendung in C# geschrieben], das in Windows automatisch dabei ist, ist das nur 12 KByte groß :-D), muss ich den Link sowieso immer kopieren und in das Adress-Feld posten, da stören mich das Wechseln zu Purelink, die zwei Klicks und das Wechseln zum privaten Fenster nicht. (Wie immer, leider ohne Installationsprogramm, wenn Sie es im Startmenü von Windows haben wollen, müssen Sie es selbst hinzufügen [gibt es jede Menge Anleitungen im Netz].)


addnew - Kommandozeilentool zum Synchronisieren von Verzeichnissen (geschrieben in C#)

Aufruf z. B.: X:\usr> addnew -r -HOT F:/usr/*

Kopiert alle Dateien aus dem Verzeichnis F:\usr die im Zielverzeichnis X:\usr (kann ein Netzlaufwerk sein, "X:\usr>" ist der Eingabeprompt, der das aktuelle Verzeichnis angibt) nicht existieren in dieses. Bei Dateien die in beiden Verzeichnissen existieren, sich aber in der Länge oder dem Datum unterscheiden, wird eine Meldung ausgegeben. Da die Option -r angegeben wurde, werden auch alle Unterverzeichnisse rekursiv mit einbezogen. Unterverzeichnisse die im Zielverzeichnis nicht existieren, werden angelegt.

addnew.exe als selbst entpackendes Archiv (*.rar) für Windows
(648 mal heruntergeladen)

Zunächst addnew.exe herunterladen. Doppelklick auf addnew.exe startet einen Dialog, in dem Sie auswählen können, wo Sie die Programmdateien entpacken wollen. Sie sollten die Dateien in ein Verzeichnis entpacken, das in der Umgebungsvariable PATH enthalten ist, oder ein Verzeichnis erstellen (z. B. C:\usr\bin) und dieses mittels der Systemsteuerung->System->Umgebungsvariablen zur Umgebungsvariablen PATH hinzufügen, damit Sie es von jedem Verzeichnis aus mittels "addnew" starten können.

Ein Aufruf von addnew ohne Parameter gibt einen kurzen Hilfetext in Englisch aus (Usage). Die Optionen müssen mit einem Minuszeichen (-) beginnen und die Option muss direkt nach dem Minuszeichen ohne Leerzeichen dazwischen beginnen, z. B. -recursesubdirs. Die Optionen dürfen abgekürzt werden, z. B. -r, -recurse, ... Eine Möglichkeit (wie bei vielen GNU-Programmen) mehrere einbuchstabige Optionen hinter einem Minuszeichen zusammenzufassen, ist bei addnew nicht möglich/erlaubt.

Wichtig: Bei der Quelle muss ein Dateiname angegeben werden, z. B. "F:/usr/*", die Angabe eines Verzeichnisses (z. B. "F:\usr" / "F:/usr/")langt nicht aus. Wie man sieht, kann man als Verzeichnistrenner statt des Backslashs (\) auch den normalen Slash (/) verwenden (wird aber intern zu Backslash umgewandelt) - praktisch bei Verwendung der PowerShell, bei der man ebenfalls normale Slashs verwenden kann.

addnew.zip ZIP-Archiv mit den beiden C# Source-Dateien (für Softwareentwickler)
(565 mal heruntergeladen)

Um das Programm zu erstellen, legen Sie in Microsoft VisualStudio ein Projekt (Console Application) mit dem Namen "addnew" an. Ersetzen sie den Inhalt der automatisch angelegten Datei Program.cs durch den Inhalt der Datei Program.cs aus diesem Archiv (bzw. überschreiben Sie die Datei Program.cs mit der aus dem Archiv). Legen Sie danach eine neue Klasse "AddMissingFiles" an und ersetzen Sie die Datei AddMissingFiles.cs mit der aus dem Archiv. Jetzt können Sie addnew.exe erstellen.

Neu: Sie können (sollten können, bei mir funktioniert es, aber ich bin ja auch der Besitzer) sich die Sourcen jetzt auch von GitHub mittels:

git clone git://github.com/psulzer/addnew.git

auschecken. Es wird dann im aktuellen Verzeichnis ein Verzeichnis "addnew" angelegt. Öffnen Sie darin die Projektmappendatei addnew.sln in Visual Studio. Getestet mit Git Version 2.8.1 und Visual Studio 2015 Community Edition.

Falls es nicht funktioniert wäre es nett, wenn Sie mir eine E-Mail senden würden (siehe Impressum).

Das Programm wird unter der GNU General Public License Version 1 oder neuer veröffentlicht, d. h. wenn Sie Änderungen an dem Programm vornehmen und es veröffentlichen, müssen sie es unter der GPL Version 1 oder neuer veröffentlichen. (siehe http://www.gnu.org/licenses/gpl-1.0.html, http://www.gnu.org/licenses/gpl-2.0.html oder http://www.gnu.org/licenses/gpl-3.0.html).


Android-Apps (Android-Applikationen [Android-Programme])

Aliza - Ihr Androide wird zum Psychiater (geschrieben in Java)

Wenn Sie Aliza nur "spielen" wollen, laden Sie sich nur "Aliza (für Benutzer)" runter, und installieren diese Datei auf Ihrem Android-Handy. Dazu müssen Sie die Installation für "Unbekannte Herkunft" (heißt bei jedem Android-Handy anders) freischalten. Bei mir ist es unter Klick auf den "Launcher" (wo alle Apps erscheinen), dann findet man irgendwo das Icon "Einstellungen" - das sind die Android System-Einstellungen. Dort unter "Anwendungen" (oder "Apps", "Applications", ...) bei "Unbekannte Herkunft" ein "Häkchen" machen. Sonst könnt Ihr Apps nur über den Google Playstore installieren. Hint: Ich habe nur Android 2.3.7. Ab 3./4. kann das ganz anders sein - ich vertraue auf die Intelligenz meiner Freunde, dass Ihr das hinbekommt ;-) Aliza benötigt keine zusätzlichen Berechtigungen(!).

Aliza (für Benutzer) - eine ELIZA (ähnlich Joseph Weizenbaums) Implementation für Android
(728 mal heruntergeladen + 100 - 500 Installationen im Playstore [siehe auf Playstore-Seite unten bei "Weitere Informationen"])


Neu Jetzt auch direkt im Google Playstore verfügbar. Falls Sie in der Lage sind, das Programm offline zu installieren und mir vertrauen, empfehle ich Ihnen die Version von dieser Seite zu installieren. Diese Version wurde noch mit dem älteren Android-SDK (das Eclipse als IDE verwendet) entwickelt. Die Version im Playstore mit dem neuen SDK (verwendet IntelliJ IDEA als IDE), und dieses erzeugt (bei gleichem Quellcode) Installationsarchive (*.apk), die rund 10 mal so groß sind. Habe leider noch nicht rausgefunden, wie man die kleiner bekommt. Im Moment leider nicht mehr im Playstore, vermutlich muss ich es erst mit einer neueren Version von Android Studio erstellen und wieder einstellen.


Aliza (für Entwickler) - Quellcode (Source) in Java mit (hoffentlich) allen benötigten Dateien (Layout-XML-Dateien, Manifest, ...) für Android. Projekt wurde ursprünglich mit Eclipse entwickelt, lässt sich aber auch in IntelliJ Idea (Android Studio) importieren. Mittlerweile existiert auch ein IntelliJ-Gradle-Port (so wie man neue Projekte mit IntelliJ Idea erstellen soll), das daraus resultierende Aliza.apk ist aber über 10 mal so groß, und den Grund dafür konnte ich bisher nicht ermitteln.
(646 mal heruntergeladen)

Hint: Das ist ein gutes Beispiel für Entwickler, die mit der Android-Programmierung beginnen. Ihr solltet aber zuvor das Tutorial aus dem Android-SDK durchgearbeitet und verstanden haben. Immerhin binde ich hier eine Anwendung ein, die für die Kommandozeile entwickelt wurde, und ich musste fast nichts ändern. Unglücklicherweise heißt das Programm und das ZIP-File und das Hauptprogramm für Entwickler Eliza und NICHT Aliza - bei Java ist es nicht ganz so einfach, Dateinamen von Source-Dateien nachträglich zu ändern.