Hallo Stefan,
ich entwickle Software für Maschinensteuerungen (Pascal und
Delphi).
D.h. ich habe schon eine Menge Ahnung von Programmieren
Hab ich mir hinterher eigentlich auch gedacht, als ich - zu spät - das Dipl.Ing in der EMail gesehen habe.
Für unsere Kunden wäre es aber völlig unzumutbar mehr als eine
Setup.exe zu starten.
Von was ich bis jetzt zu tcl usw. gefunden habe gibt es zwar
setup.exe
die packt aber nur diverse Dateien aus und dann steht da man
braucht
gcc + xy + z
dann makefile so und so aufrufen usw. usf.
Nein, das ist nur die halbe Wahrheit, oder anders ausgedrückt, nur eine Möglichkeit (für die Hardcore-Programmierer sozusagen, die alles an ihre Bedürfnisse anpassen wollen.
Es gibt zu allem eine echte Setup-Datei, die nur Windowsmäßig durchgeklickt werden muss, also ein- bis dreimal OK drücken, und das wars. Dafür sehr zu empfehlen ActiveState: http://www.activestate.com/products/languages.plex ) Binaries für Perl, Python und Tcl.
oder andere Orte,
Tcl/Tk:
http://www.tcl.tk/software/tcltk/8.0.html
bzw. http://prdownloads.sourceforge.net/tcl/tcl805.exe für direkten Download
Ruby:
http://www.ruby-lang.org/en/downloads/ mit einem sogenannten „one-click installer“ für Ruby on Windows (und der one-click ist wirklich wahr).
Eine „Input“-Textdatei enthält variable Daten
aus diesen variablen Daten soll eine „Output“-Textdatei
erzeugt werden
Dabei soll der Text je nach bestimmten Eingangsdaten
verschiedene Ausgangdaten erzeugen
einfaches Beispiel:
wenn Herstellerkürzel = xy dann setze Herstellername
„Müller-Maschinen“ ein
wenn Herstellerkürzel = ab dann setze Herstellername
„Meier-Maschinen“ ein
usw.
das muss die Sriptsprache leisten können
Ja, das können die alle. Alle haben reguläre Ausdrücke eingebaut, mit denen man solche Sachen fast im Handumdrehen erledigt. Eigentlich ist dafür die Benutzung von Tcl, Perl, Ruby usw. schon fast wie mit Kanonen auf Spatzen schiessen. Im Prinzip müsste da schon sed reichen:
http://www.cornerstonemag.com/sed/
da reicht eine Programmzeile der Art: s/XYZ/ABC/g und alle XYZ werden zu ABC.
Wenn manchmal kompliziertere Entscheidungen zu treffen sind (so in der Art „tausche XYZ nur, wenn in der vorigen Zeile als drittes Wort 123 stand“) dann sollte man awk nehmen, das ist ja eigentlich die Sprache die geradezu für solche „Textverarbeitungen“ gemacht wurde (obwohl man mit ihr auch mehr anstellen kann).
awk für Windows gibts z.B. hier (als mawk.exe für Windows):
http://www.klabaster.com/freeware.htm
Sowohl sed als auch awk liegen als zip-File, bzw. selbstentpackendes zip-File vor, und alles ist dabei (kein Übersetzen, nur Auspacken).
Es sind natürlich im Prinzip DOS-Programme, d.h. sie laufen im DOS-Fenster ab, was man natürlich meistens kaum bemerkt, weil es so schnell wieder zugeht, wie es aufgegangen ist. Du müsstest also einen Batchfile drumrumpacken, damit die Kunden wirklich nur klicken müssen. Aber das Problem ist bei Python, Perl, Tcl, Ruby usw. ähnlich, die ja auch entweder in einem DOS-Fenster ablaufen oder in sowas ähnlichem wie einem DOS-Fenster (die wish bei TCL). Dort müsste man also unter Umständen auch eine Oberfläche programmieren, was ganz sicher umfangreicher ist als die eigentliche Text-Ersetzungsarbeit. Eine andere Möglichkeit wäre natürlich, die Perl-, Python-, Ruby- usw. -Programme in eine HTML-Oberfläche einzuwickeln, aber da müsste dann ja wieder irgendein Server im Hintergrund laufen (nicht unbedingt nur Apache).
Am besten sieh dir alles mal an und mach mit jedem ein paar Probeläufe. Meine Rangfolge wäre:
- sed
- awk
- Ruby oder Python
- Perl oder Tcl/Tk
Die Programmierung für die vorliegende Aufgabe erlernst Du bei deinem Hintergrund meiner Meinung nach in ein paar Tagen.
Gedanken bereitet mir höchstens noch, dass Du bei allen Lösungen das eigentliche Programm als reine Textdatei den Kunden auslieferst. Die können das ja sonstwie vermurksen…
Ich hoffe, das hilft dir ein wenig weiter
Mit freundlichen Grüssen
Klaus Bernstein