Hallo Gerd,
aufgepasst! Mit Deiner Massnahme wird die Trefferquote nicht erhöht. Im Gegenteil ...
Im Suchmuster "[0-9]{1,4},-" steht die Ziffer '1' nicht für die Position (= Offset)
des Preises, sondern für die Mindestanzahl Stellen. Mit "{2,4},-" werden Preise
von minimal 10,- und maximal 9999,- gefunden. Wenn einstellige Eurobeträge nie
vorkommen: okay. Sonst schleunigst wieder den alten Zustand herstellen.
Wenn Du vermeiden möchtest, dass das Script gebremst wird, weil es sich auch um
Zahlen zu Beginn der Story (= Position 0) kümmert, dann könnte man im Script-Objekt
'getStory' der Variablen 'storyOne' die Zeichen 2 bis zum letzten der 'story 1'
zuweisen. Aber dann müsste man die Positionswerte um Zeichen verschieben, sonst
würde die Ersetzung verschoben vorgenommen werden.
Bitte teile mir mit, ob es wünschenswert ist, dass das erste Zeichen in einer Box
ausgeschlossen wird. Ich werde dann das Script entsprechend ändern.
Hingegen könnte man die Werte im Teil des Tests, welcher die Euro+Cents-Beträge
auszieht, die Vorgabe auf {3,6} ändern. Dadurch würden immer noch Preise von
minimal 111 (= Euro 1,11) und 999999 (= Euro 9999,99) berücksichtigt.
Mit anderen Worten: Das Ergebnis wird dasselbe sein, weil nur Stories zurückgegeben
werden, welche mindestens drei Ziffern in Folge enthalten.
---
-- den zu ändernden Preis, dessen Position und Länge feststellen
if cents then
set someDigits to (find text "[0-9]{3,6}" in storyOne with regexp)
else
set someDigits to (find text "[0-9]{1,4},-" in storyOne with regexp)
end if
---
Bitte sage mir Bescheid.
Gruss, Hans
als Antwort auf: [#420336]