Hallo Michael,
hier kommt endlich meinen Antwort.
Zuerst Grundsätzliches. Die Zahlen in den Textboxen sind – wie Du richtig
sagst – Text. Und mit Textketten kann man nicht Rechnungen durchführen.
Die "Worte" müssen zuerst in Dezimalzahlen (= real) umgewandelt werden:
---
"0.02"
as real ---
Das Ergebnis ist 0.02
Wenn man aber an einen Text, welcher aus Ziffern besteht, eine Multiplikation
anfügt, dann wird die Umwandlung automatisch vorgenommen:
---
"0.02" * 0.03937
---
Das Resultat dieser Rechnung sieht aber komisch aus:
7.874E-4 Sobald ein Wert eine bestimmte Grenze unterschreitet, dann wird er in
exponentieller Schreibweise zurückgegeben. Man kann damit immer noch rechnen,
aber zum Einsetzen in Deinem Text muss man ihn aufbereiten.
Das "E-4" am Schluss bedeutet, dass der Dezimalseparator in Wirklichkeit vier
Stellen nach links gerückt werden muss:
---
0.0007874
---
Laut Deinen Beispielen werden die Nachkommastellen auf vier Ziffern begrenzt.
Man sollte die weiteren nicht einfach abschneiden, sondern aufrunden:
---
"0.0008"
---
Für dieses Umwandeln in eine lesbarere Textkette könnte man die Scripting
Addition "Satimage" einsetzen:
---
set curStr to "0.02"
set tmpVal to (
curStr * 0.03937)
set inVal to format tmpVal into "0.0000"
---
Das funktioniert gut unter Mac OS X. Aber mit "Satimage 1.8.5" unter
Mac OS 9.2.1 kommt eine Fehlermeldung. Ich habe das Umwandeln deshalb
durch reines AppleScript ersetzt.
Das folgende Script benutzt dennoch die Satimage OSAX. Zum Ersetzen von
"[mm]" durch "[mm/inch]". Falls Du diese Scripting Addition noch nicht installiert
hast, kannst Du sie hier herunterladen: http://www.fachhefte.ch / den Link
"AppleScripts" betätigen und das Verzeichnis "z_additions_os_9" öffnen.
Das Stuffit-Archiv heisst "Satimage.sit".
Bevor man ein Script auf alle Textboxen eines Dokuments loslässt, muss man
sicher sein, dass die Aufgabe wunschgemäss ausgeführt werden wird.
Deshalb behandelt diese Version nur einen ausgewählten Textrahmen.
---
Das Script geht in einer Schleife die Absätze der ausgewählten Textbox durch,
Setzt den aktuellen Absatz in den Speicher und nimmt die weiteren Aktionen
auch darin vor: Wechsel von "[mm]" zu "[mm/inch]", Aufstellen und Abarbeiten
einer Liste der Werte. Für jeden wird der Handler 'convMM(curNum)' aufgerufen,
damit dieser die Umrechnung vornehmen kann.
Das Ergebnis wird an eine temporäre Liste gehängt, welche am Schluss zur
Textkette verwandelt und in der Textbox eingefügt wird.
Bitte versuche mal, dieses Script zum Laufen zu bringen. Dann sehen wir weiter.
Gruss, Hans