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)
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!


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. Er beherrscht Variablen (Speicher) mit beliebigen Namen, z. B. Mwst=1.19 und dann z. B. Preis=13,84*Mwst. Alle in C++ vorhandenen mathematischen Funktionen mit einer Variablen werden unterstützt. 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".

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)
(204 mal heruntergeladen)

coca.zip als ZIP-Archiv für OS/2
(154 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
(57 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)
(33 mal heruntergeladen)


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
(57 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)
(58 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
    (170 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.

  • 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.
    (142 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.