hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Hans Haesler  M  p
Beiträge: 5392
22. Nov 2002, 09:22
Beitrag #1 von 2
Bewertung:
(931 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Dezimal-Separator


Liebe Kollegen,

irgendwie stelle ich mich zu dumm an. Ich habe nun einige interessante Scripte gefunden, es geschafft, den nicht standardmäßig installierten Ordner "Scripte" von der CD in den Zusatzmodul-Ordner zu legen, aber nun erscheinen die vorschriftsmäßig nicht in der Script-Palette.

Wer weiß Rat?

Danke,
Christoph
Top
 
X
Hans Haesler  M  p
Beiträge: 5392
22. Nov 2002, 09:22
Beitrag #2 von 2
Beitrag ID: #417994
Bewertung:
(930 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Dezimal-Separator


Beim Konvertieren eines Strings in eine Dezimal-Zahl (= 'as real') ...
Code
(paragraph i of priceStrings) as real

... kommt die Fehlermeldung, dass dies nicht möglich sei. Die Textkette sieht aber
wie eine Zahl aus (z.B. "37.50"). Es ist kein alphabetisches Zeichen darin, welches
die Umwandlung verhindern könnte.

Des Rätsels Lösung: Der Dezimal-Separator muss jenem entsprechen, welcher im
Kontrollfeld "Zahlenformate" definiert ist. Steht dort ein Komma (das Vorgabezeichen
für das deutsche Format; in der Schweiz ist es ein Punkt), dann gibt es zwei Lösungen.


1) Im String muss der Punkt gegen ein Komma ausgetauscht werden ...

Dieses Austauschen muss nicht unbedingt im Original, z.B. in einer XPress-Textbox
geschehen. Es kann auch im Speicher, in der Variablen, welcher der String zugewiesen
ist, vorgenommen werden. Die komfortabelste Lösung: ein Suchen/Ersetzen-Lauf mit
der Scripting Addition "RegEx Commands" (erhältlich bei <a href="http://www.lazerware.com" target="_blank">http://www.lazerware.com</a> ).

Angenommen, die Variable 'aString' enthält einige Absätze, welche je einen Preis
(ähnlich wie oben) enthalten. Dieser Befehl genügt:
Code
set aString to REReplace aString pattern "\\." with ","

Das Besondere daran ist, dass der Punkt in den RegEx-Commands als Sonderzeichen
definiert ist. Dieser Status muss deshalb im Suchstring mit einem Backslash
aufgehoben werden. Sonst wird die Textkette in eine Reihe von Kommata verwandelt,
weil der Punkt jedes Zeichen vertritt.

Weil aber der Backslash auch ein Sonderzeichen ist, muss auch dieser entschärft
werden. Mit einem ... Backslash.


2) ... oder die Definition im Kontrollfeld ändern.

Im Kontrollfeld "Zahlenformate" anstelle des Kommas einen Punkt eingeben.
Anschliessend die Maschine neu starten.

Diese Variante hat zwar Auswirkungen auf die Anzeige des Separators in Fenstern und
Paletten von QuarkXPress, sollte aber kein Problem sein.

Hans Haesler
als Antwort auf: [#417993] Top