On Sat, 4 Dec 2004, Roger Butenuth wrote: Hallo Roger, Kai und Liste, vielen Dank für Deine Antwort. Zunächst Dir und allen Mitlesern einen schönen zweiten Advent. Grundsätzlich muß ich sagen, daß ich inzwischen von brass als Sprachausgabe für die Konsole begeistert bin (arbeite nach wie vor als Blinder ohne Braillezeile). Der Ausgangspunkt für meine Frage ist, daß ich nun eine Geburtstagsliste mit entprechenden Datumsangaben erstellen möchte. Das ja war bisher mit brass nicht möglich, aber mit dem Befehl "suchen und ersetzen" (replace...) anscheinend nun doch. Was geht nun bei mir und was nicht:
Hallo Kai, hallo Liste,
replace(german, " 1.", "erster") replace(german, " 2.", "zweiter") ...
Beide Befehle funktionieren leider so nicht. Es geht bei mir nur so: replace(german, "1.", "erster") Dann sagt brass zwar erstens, aber: aber alle anderen Zahlen mit einer 1 ohne Punkt dahinter werden mit Punkt vorgelesen.
Bist du sicher, dass es genau so ist? Das Suchen&Ersetzen funktioniert mit regulären Ausdrücken, dabei haben viele Sonderzeichen - unter anderem der Punkt - eine besondere Bedeutung: Der Punkt steht zum Beispiel für ein beliebiges Zeichen. Reguläre Ausdrücke sind in der Manpage "man 7 regex" (allerdings ziemlich unverständlich) erklärt. Eventuell hilft ein gutex Unix-Buch oder eine passende Web-Seite.
Mittlerweile hat mir Kai folgenden "Befehl" geschickt: replace(german, " 1\\.", "erster") Auch der hat bei mir so nicht funktioniert, aber: replace(german, "1\\.", "erster") geht insoweit, daß die Zahlen von zehnten bis einunddreißigsten wie gewünscht gesprochen werden, wenn die Eingaben für die Zahlen 1 bis 9 mit einem # versehen werden, sonst wird z.B. für 11. nicht elftens sondern eins Punkt eins gesagt. Die Zahlen vom "ersten" bis "neunten" und die vollen Zehner werden nur richtig gesprochen, wenn die Zahlen 11 bis 19, 21 bis 29 und 31 mit # versehen sind und mir damit fehlen. Mir wäre nun geholfen, wenn ich einen passenden Befehl für die mit # versehenen Ziffern hätte, der die anderen Zahlen nicht beeinflußt. So habe ich das nach einigen Stunden Tüfftelei herausgefunden. Mit freundlichen Grüßen Jürgen