Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?
Und wenn ja, wo?
Danke schön...
Karsten
| Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
| sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?
| Und wenn ja, wo?
Es gibt SCM für Windows und Guile soll auch laufen. Beides Scheme. Der
Scheme Standard ist ca. 50 Seiten lang und somit der kürzeste im
Vergleich zu allen anderen Programmiersprachen. Deshalb kann man
Scheme auch relativ schnell lernen. Ein Hello World sieht so aus:
(display "Hello World\n")
Und folgendes gibt eine Liste aller Datein im aktuellen Verzeichnis aus:
(define (read-whole-dir port)
(let ((line (readdir port)))
(if (eof-object? line)
'()
(cons line (read-whole-dir port)))))
(define dir-port (opendir "."))
(for-each (lambda (line)
(display line)
(newline))
(read-whole-dir dir-port))
(closedir dir-port)
Und wenn man das noch etwas erweitert, bekommt man auch alle
Unterverzeichnisse und deren Dateien:
(define (read-dir dir)
(let ((dir-port (opendir dir)))
(letrec ((read-files
(lambda ()
(let ((file (readdir dir-port)))
(if (eof-object? file)
'()
(if (or (equal? file ".")
(equal? file ".."))
(read-files)
(let ((full-name (string-append dir "/" file)))
(if (file-is-directory? full-name)
(append (cons full-name (read-dir full-name))
(read-files))
(cons full-name (read-files))))))))))
(let ((files (read-files)))
(closedir dir-port)
files))))
(let ((files (read-dir ".")))
(for-each (lambda (file)
(display file)
(newline))
files))
Hoert sich nach Perl an.
>Und wenn ja, wo?
Gibt's kostenlos im Internet.
--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
rc5 331 84.7 0.4 1032 396 ? R N 20:59 561:56 ./rc5des
Send email to fl...@nixe.ping.de with *Subject: pgpsend* for PGP PubKey!
_PGP fingerprint: 34 E9 05 7E 00 AF 1E 34 55 B6 D6 50 69 2E C3 C2_
> | Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
> | sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?
> | Und wenn ja, wo?
[ ... Scheme Standard nur 50 Seiten ]
> (cons full-name (read-files))))))))))
Beinahe intuitiv. Eine Sprache, an die ich mich klammern koennte.
Btw, ab der wievielten Klammerebene steigt der Emacs mit 'nem SegFault
aus? Oder selbst mitzaehlen?
Gruss,
Brandy
--
EMACS belongs in <sys/errno.h>: Editor too big!
The Unknown User <anon...@nowhere.uucp>
Perl ist aber vielleicht ein bischen sehr einfach. :-)
- Jens Theisen / j...@jth.ping.de -
| > (cons full-name (read-files))))))))))
|
| Beinahe intuitiv. Eine Sprache, an die ich mich klammern koennte.
Nicht mehr Klammern als in C. Wenn du willst, kannst du es auch als
(
cons a b
)
schreiben, wenn du damit glücklicher wirst. Außerdem gibt es für ganz
harte Fälle von Inflexibilität noch Tax. Das sieht wirklich wie C aus
und wird beim Lesen automatisch nach Scheme transformiert.
| Btw, ab der wievielten Klammerebene steigt der Emacs mit 'nem SegFault
| aus? Oder selbst mitzaehlen?
Der Vorteil an Scheme in Gegensatz zu vielen anderen Sprachen ist, daß
es *keine* Segfaults gibt! Selbst hochgradig unsinnige Anweisungen
führen nicht zu Abstürzen, sondern zu wohldefinierten Fehlermeldungen:
----------------------------------------
guile> (+ 5 "7")
Backtrace:
0* [+ 5 "7"]
ERROR: In procedure + in expression (+ 5 "7"):
ERROR: Wrong type argument in position 2: "7"
ABORT: (wrong-type-arg)
----------------------------------------
die man mit Leichtigkeit in seinen eigenen Programmen auffangen kann:
----------------------------------------
guile> (catch #t
(lambda () (+ 5 "7"))
(lambda (key . args)
(display "das war falsch!\n")))
das war falsch!
----------------------------------------
Klar! ;-) Siehe dazu auch:
You can learn Perl "small end first". You can program in Perl
Baby-Talk, and we promise not to laugh. Or more precisely, we promise
not to laugh any more than we'd giggle at a child's creative way of
putting things.
-- Larry Wall, Preface of "Programming Perl, 2nd Edition".
--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
rc5 374 94.6 0.3 1032 344 ? R N 12:29 434:31 ./rc5des
| Perl ist aber vielleicht ein bischen sehr einfach. :-)
Was ist denn an Perl einfach? Der Umfang der Syntax wird ja wohl wenn
überhaupt nur noch von Ada oder ähnlichem Zeug getoppt. Willst du
sowas einem Anfänger anbieten:
($op = shift) || &usage;
if ($op eq "-n") {
$show = $op;
($op = shift) || &usage;
}
if (!@ARGV) {
@ARGV = <STDIN>;
chop(@ARGV);
}
for (@ARGV) {
next unless -f $_;
$was = $_;
eval $op;
die $@ if $@;
if ($was ne $_) {
if ($show) {
[ ... Tax ]
> Der Vorteil an Scheme in Gegensatz zu vielen anderen Sprachen ist, daß
> es *keine* Segfaults gibt! Selbst hochgradig unsinnige Anweisungen
> führen nicht zu Abstürzen, sondern zu wohldefinierten Fehlermeldungen:
Wenn Dir zu Scheme und Tax ein paar interessante Links begegnet sind,
koenntest Du die mal hier posten?
Gruss,
Lars
--
Bekaempft gefaelligst die Kinderficker, und nicht das Internet.
Andreas Bogk in <y8au369...@horten.artcom.de>
| Wenn Dir zu Scheme und Tax ein paar interessante Links begegnet sind,
| koenntest Du die mal hier posten?
ftp://ftp.red-bean.com/pub/guile/
http://www.red-bean.com/pub/guile/
Ein brauchbares Buch ist:
Springer, Friedman: Scheme and the Art or Programming.
Das war doch nur ironisch gemeint, Perl ist eigentlich recht umfangreich
(recht unverständlich). :-)
>($op = shift) || &usage;
>if ($op eq "-n") {
> $show = $op;
> ($op = shift) || &usage;
>}
>if (!@ARGV) {
> @ARGV = <STDIN>;
> chop(@ARGV);
>}
>
>for (@ARGV) {
> next unless -f $_;
>
> $was = $_;
> eval $op;
> die $@ if $@;
>
> if ($was ne $_) {
> if ($show) {
Hä? :-)
Kommt darauf an. Als Alternativen würde ich Tcl und Python anbieten
(http://www.scriptics.com/, http://www.python.org). Umfangreich heißt
doch, daß man was mit anfangen kann. Weniger umfangreich ist
command.com, oder auch präcompilierte bash's für Win32 (ja, so etwas
gibts, z.B. mit Compiler und Posix-Gesocks unter
http://www.cygnus.com/misc/gnu-win32/).
> > die $@ if $@;
> Hä? :-)
Stirb langsam, wenn noch Argumente über sind ...
--
Karsten Tinnefeld <ti...@kati.ping.de> (endlich konfiguriert ...)
,,Habe Vertrauen, das bis zum Morgen geht. Die Sonne geht alleine auf.``
>| Perl ist aber vielleicht ein bischen sehr einfach. :-)
>Was ist denn an Perl einfach? Der Umfang der Syntax wird ja wohl wenn
>überhaupt nur noch von Ada oder ähnlichem Zeug getoppt. Willst du
>sowas einem Anfänger anbieten:
Noe, allerdings ist es ja (ausser wenn man es auf die Spitze treiben
will) keine Kunst aus einem Programm in beliebiger Sprache
Spaghetti-Code zu machen. Bei Perl ist es ja gerade so toll, dass
man entweder eine schnellen Hack, einen Einzeiler oder auch ein
"serioeses" Programm schreiben kann: There's more than one way to do
it!
Wenn ein Programme mehr zu sein beginnt als ein quick'n dirty Hack,
solltest du es in Sub-Routinen zerlegen, lokale Variablen mit "my"
einfuehren, einige Parameter und Befehl fuer's Strikte einfuehren, um
etwaige Unsauberkeiten zu erkennen. Dann steigt man auch nach einer
Weile noch durch seine Hirngeburt durch...
Dein gekoepftes Programmbeispiel (eine Mutante des rename-Skripts aus
der alten Auflage des Kamelbuchs?) wuerde ein "-w" (oder sogar ein
"-T") oder ein "use strict;" nicht ohne Probleme ueberleben. Fuer Perl
gibt es uebrigens ein Modul mit Getopt-Routine, so dass man das nicht
jedesmal selbst verwursten muss.
Und jetzt nenne mir mal jemand eine Programmiersprache, in der man
solche tollen Gedichte schreiben kann, die auch noch lauffaehig
sind: :-)))
#!/usr/bin/perl
APPEAL:
listen (please, please);
open yourself, wide;
join (you, me),
connect (us, together),
tell me.
do something if distressed;
@dawn, dance;
@evening, sing;
read (books, $poems, stories) until peaceful;
study if able;
write me if-you-please;
sort your feelings, reset goals, seek (friends, family, anyone);
do*not*die (like this)
if sin abounds;
keys (hidden), open (locks, doors), tell secrets;
do not, I-beg-you, close them, yet.
accept (yourself, changes),
bind (grief, despair);
require truth, goodness if-you-will, each moment;
select (always), length(of-days)
# listen (a perl poem)
# Sharon Hopkins
# rev. June 19, 1995
--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
rc5 316 90.4 0.3 1032 340 ? R N 16:29 270:30 ./rc5des
Wenn Du mal bitte beachten würdest, daß ich ein ":-)" hinter all meine
Ausführungen gesetzt habe. Perl ist eine für ihren Aufgabenbereich
unwahrscheinlich mächtige Sprache. Ich kann sie zwar nicht, aber bin mir
sicher, daß es sehr nützlich wäre, Perl zu beherschen. Aber zur Qualität
von Perl habe ich mich in keinster Weise geäußert. Ich wollte nur
anmerken, daß Perl, im Gegensatz dazu, was ursprünglich gesucht war, nicht
einfach ist (oder bist Du da etwa anderer Ansicht?). Warum Du mich deshalb
gleich angreifst, ist mir nicht ganz klar.
Allmählich habe ich wirklich genug davon, für ganz neutrale oder
scherzhaft gemeinte (und so gekennzeichnete) Aussagen gleich von
irgendwelchen Leuten angefeindet zu werden.
| Noe, allerdings ist es ja (ausser wenn man es auf die Spitze treiben
| will) keine Kunst aus einem Programm in beliebiger Sprache
| Spaghetti-Code zu machen.
Ne es ging nicht um Spagetti-Code. Schließlich waren das ja nur ein
paar Zeilen. Sondern um den Umfang der Syntax. Damit man in Perl
anfangen kann muß man erst mal z.B. erst mal den Unterschied zwischen
%foo, $foo und @foo erklärt bekommen. In Sprachen mit weniger Syntax
braucht man das nicht. Je mehr Syntax, desto mehr gibts zu lernen und
desto länger dauert es, wenn jemand einsteigen will. Das heißt, Perl
lohnt sich nur, wenn man nach der Hürde der Lernerei wirklich viel
danach damit macht.
--
http://www.ping.de/sites/aibon/
Hallo Jens,
leider begreife ich erst langsam, das der Umgangssprachton hier etwas
rauher ist, als ich eigentlich akzeptabel finde und als normal erachten
würde. Obige Bemerkung war ein SCHERZ über eine für den deutschen
Sprachgebrauch sinnlos bis grausam erscheinende Eigenart der Sprache
Perl: daß man Skripte mit dem Befehl "die" verlassen kann. Also ist es
offensichtlich notwendig, mit derartigen Äußerungen noch vorsichtiger
vorzugehen und Sinnlosigkeiten nur noch in <Skuril/Tags/ einzukleiden.
Ich konnte einmal Perl, sprich: habe mir mal das Buch durchgelesen und
ein paar Sachen ausprobiert, und bin sicher, wenn ich es bräuchte,
könnte ich es mir leicht wieder beibringen. Meine Argumentation lautet
eher: wegen der starken Ähnlichkeit zur Shellscript-Syntax ist perl in
den Grundzügen leicht erlernbar, während man sich Erweiterungen, die
vielen Bibliotheken etc. bei Gebrauch nebenbei beibringen kann, also
eigentlich genau das lernen muß, was man braucht.
Leider bin ich erst jetzt dazu gekommen, hier nachzuschauen, was aus
meiner kleinen Anfrage nach einer "einfachen Scriptsprache" geworden
ist. Sappalot!
Aber erstmal vielen Dank für die Tips. Hab' 'nen ersten Blick auf die
Vorschlaege geworfen und einiges dazugelernt, insbesondere was passiert,
wenn man seine Anfrage nicht konkret genug formuliert (Was heisst
EINFACH und FÜR WIN95). Was ich suchte war folgendes: Ich moechte
innerhalb der Windows-Umgebung mit Hilfe einfacher Befehle
Windows-Fenster oeffnen, schliessen, deren Text und Schaltflaechen
bestimmen, Dateien loeschen, Programme starten etc. Und unter "einfachen
Befehlen" verstehe ich sowas wie z.B. die Batch-Befehle unter DOS oder
BASIC usw. Das wuerde mir absolut reichen (Hoffentlich werde ich jetzt
nicht allzu schraeg angeguckt von wegen "praecompilierte bash's ... mit
Compiler und Posix-Gesocks").
-Schluck- :-)
Wenn also wer was weiss... Ideal ist natürlich Freeware.
Aber ganz umsonst waren einige Tips trotzdem nicht. Hab' mit Peal
besorgt, und wenn ich mal Zeit und Ruhe habe...
Bis denn
Karsten
>| Noe, allerdings ist es ja (ausser wenn man es auf die Spitze treiben
>| will) keine Kunst aus einem Programm in beliebiger Sprache
>| Spaghetti-Code zu machen.
>Ne es ging nicht um Spagetti-Code. Schließlich waren das ja nur ein
>paar Zeilen. Sondern um den Umfang der Syntax. Damit man in Perl
>anfangen kann muß man erst mal z.B. erst mal den Unterschied zwischen
>%foo, $foo und @foo erklärt bekommen. In Sprachen mit weniger Syntax
Nein, man muss eben nicht das alles erklaert bekommen. Du kannst es ja
auch einfach unterlassen, Hash-Datenstrukturen, Stack- und
Queueeigenschaften zu benutzen, und die @foos als ganz normale Arrays
benutzen. Andere Sprachen unterstuetzen diese Moeglichkeiten aber
nicht so beilaeufig wie es Perl tut. Die Folge ist, dass du dir selbst
was stricken musst, oder eine Library dafuer benutzen musst, so dass
die Einheitlichkeit und Eleganz verloren geht. Und von der
hervorragenden Einbindung von regulaeren Ausdruecken in Perl haben wir
ja noch gar nicht gesprochen...
>braucht man das nicht. Je mehr Syntax, desto mehr gibts zu lernen und
>desto länger dauert es, wenn jemand einsteigen will.
Du sagst also, wenn jemand nicht saemtliche, Vokabeln, klassischen
Redefiguren, Nebensatzkonstruktionen, usw. beherrscht, kann er gar
nicht sprechen. Ich glaube, dass diese Bedingung selbst in
abgeschwaechter Form nur auf eine verschwindend kleine Minderheit der
deutschen Sprechergemeinschaft zutrifft und dennoch sprechen die
anderen doch wohl auch deutsch, oder?
>Das heißt, Perl
>lohnt sich nur, wenn man nach der Hürde der Lernerei wirklich viel
>danach damit macht.
Das kann ich irgendwie nicht nachvollziehen. Ich finde es viel
interessanter, einfach mal damit anzufangen und sich die Skripts
spaeter noch'mal anzuschauen. Da merkt man schon, dass das zwar vorher
gut funktionierte, dass man es aber so und so viel geschickter machen
koennte. Die Lernkurve ist also wesentlich flacher, als du es hier
beschreibst.
--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
rc5 274 94.9 0.4 1032 392 ? R N 15:14 358:58 ./rc5des
Entschuldige bitte vielmals, ich habe Dich falsch verstanden. Ich hatte
Deine Aussage nicht als Übersetzung sondern als Kommentar verstanden.
> Was ich suchte war folgendes: Ich moechte
> innerhalb der Windows-Umgebung mit Hilfe einfacher Befehle
> Windows-Fenster oeffnen, schliessen, deren Text und Schaltflaechen
> bestimmen, Dateien loeschen, Programme starten etc. Und unter "einfachen
> Befehlen" verstehe ich sowas wie z.B. die Batch-Befehle unter DOS oder
> BASIC usw.
Ich versteh' nich' die Bohne von Windows, aber in der neuen c't
(13/98) wird ein Feature von Win98 beschrieben, das sich Windows
Scripting Host WSH nennt. Lies die Box auf Seite 95. Vielleicht ist
das was für Dich!?
HTH,
Ralf
--
Ralf H"uls | The only way to get rid of a
spa...@teleute.ping.de | temptation is to yield to it.
|
http://www.ping.de/sites/teleute/ | Oscar Wilde