[GastForen Programmierung/Entwicklung AppleScript Textsuche nach Datenmuster in QXP?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Textsuche nach Datenmuster in QXP?

Hans Haesler
  
Beiträge gesamt: 5826

18. Nov 2005, 22:44
Beitrag # 31 von 40
Beitrag ID: #420366
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerd,

jetzt ist viertel vor Elf. Bisher ist nichts eingetroffen.
Bitte versuche es nochmals.

Gruss, Hans


als Antwort auf: [#420336]
X

Textsuche nach Datenmuster in QXP?

Hans Haesler
  
Beiträge gesamt: 5826

21. Nov 2005, 11:12
Beitrag # 32 von 40
Beitrag ID: #420367
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerd,

danke für das Zusenden der Dateien. Wäre eigentlich nicht notwendig gewesen, denn der Fehler lag bei mir ...
Genauer gesagt, im Handler, welcher den modifizierten Text wieder importiert, hatte ich in der Eile vergessen,
den Bezug zur Seite einzubauen.

Bitte entschuldige meine Nachlässigkeit. Das korrigierte Script (NummernPreiseAendern_02d) ist unterwegs.
Jetzt sollten in der Hauptbox die Bestellnummern gekürzt und die Preise ausgetauscht werden.

Gruss, Hans


als Antwort auf: [#420336]

Textsuche nach Datenmuster in QXP?

Anonym
Beiträge gesamt: 22827

21. Nov 2005, 13:40
Beitrag # 33 von 40
Beitrag ID: #420368
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
es läuft super!!!!!!  :D

Wenn mir das nicht noch a bissl zu undurchsichtig wäre, hätte ich vielleicht selbst drauf kommen können. Bin heilfroh, dass DU da was machen konntest.

Hab übrigends bei dem Teil, der den Tausch der kleinen Textrahmen behandelt, noch geringfügig verändert, damit die Trefferquote höher liegt (Falls diese Boxen mit ner Zahl beginnen, von"1" auf "2" erhöht); Hab's rot markiert:
-- eine Wiederholungsschleife durch die Textketten
   repeat with i from 1 to count of text boxes
    tell text box i
     set boxNum to i
     -- der Variablen 'storyOne' die aktuelle Textkette zuweisen
     set {storyOne, cents} to do script {getStory}
     if storyOne is not "" then
      -- den zu ändernden Preis, dessen Position und Länge feststellen
      if cents then
       set someDigits to (find text "[0-9]{2,6}" in storyOne with regexp)
      else
       set someDigits to (find text "[0-9]{2,4},-" in storyOne with regexp)
      end if
      -- der Variablen 'oldPrice' den alten Preis zuweisen
      set oldPrice to matchResult of someDigits
      -- den Handler aufrufen, welcher den neuen Preis zurückgibt
      set newPrice to my getNewPrice(oldPrice)
      -- wenn es geklappt hat ...
      if newPrice is not "" then
       -- der Variablen 'x1' die Position ...
       set x1 to (matchPos of someDigits)
       -- ... und 'x2' die Länge zuweisen
       set x2 to (matchLen of someDigits)
       do script {changePrice}
      else
       set properties to {color:"Magenta", shade:50}
      end if
     end if
    end tell
   end repeat

Merci für Deine Hilfe! Die Kommentare helfen mir auch sehr viel weiter, das ganze in für mich erkennbare Sinnblöcke zu bekommen und den Ablauf zu verstehen.

Die allerbesten Grüße in die Schweiz
Gerd


als Antwort auf: [#420336]

Textsuche nach Datenmuster in QXP?

Hans Haesler
  
Beiträge gesamt: 5826

21. Nov 2005, 15:45
Beitrag # 34 von 40
Beitrag ID: #420369
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

Textsuche nach Datenmuster in QXP?

Hans Haesler
  
Beiträge gesamt: 5826

21. Nov 2005, 21:47
Beitrag # 35 von 40
Beitrag ID: #420370
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerd,

in der aktuellen Fassung des Scripts muss ich noch eine weitere Änderung vornehmen,
denn es werden nur Ganz-Euro-Preise von 1,- bis 99,- abgedeckt.

Zudem möchte ich noch wissen, ob in jeder kleinen Textbox nur ein  Preis vorkommt
oder ob sie ausnahmsweise auch mehrere Preise enthalten können.

Gruss, Hans


als Antwort auf: [#420336]

Textsuche nach Datenmuster in QXP?

Anonym
Beiträge gesamt: 22827

22. Nov 2005, 10:34
Beitrag # 36 von 40
Beitrag ID: #420371
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
sorry, dass ich mich jetzt erst melde.

Zum ersten:
Mir ist aufgefallen, dass Preise nicht erkannt wurden, wenn eine Positionsnummer im kleinen Textrahmen steht. Mit "Positionsnummer" meine ich die Artikelposition auf der Seite. Nachdem ich das wie beschrieben geändert habe, hat es funktioniert.

Es kann natürlich schon vorkommen, dass einstellige Preise auftauchen. Das kann ich nicht ausschließen. Insofern wäre es natürlich sicherer, wenn das auch berücksichtig würde.

Die Änderung mache ich wieder rückgängig und ändere den ersten Wert in "3".

Zum zweiten Posting:
Wäre Super, wenn das bis einschl. 4-Stellig funktionieren würde. Selbst bei nem Angelkatalog oder auch Werkzeugkatalog gibt es Zubehör, das bis zu 4-stellig sein kann. Wenn dann z.B. noch in eine andere nicht-Euro Währung geändert werden muss, kommen 1.000er Preis durchaus vor, mehr aber eigentlich nicht.

Es kommt sogar manchmal vor, dass in einem kleinen Textrahmen Preis und Produktnummer stehen (z.B. bei Accessoires, die nicht nochmal im Haupttextrahmen auftauchen.

Da das Script aber dann das Feld in Magenta hinterlegt, ist das kein Problem und wird einfach manuell geändert.

Ob mehrere Preise vorkommen können, kann ich gar nicht sagen, da wir teilweise nur Seiten zuliefern und die unterschiedlichsten Sachen für die diversen Kunden machen. Wir haben bei den aktuellen Produktionen noch nicht alle Seiten erhalten. Wenn ich mehr weiss, schrieb ich Dir.

Viele Grüße und Merci für Deine Geduld
Gerd


als Antwort auf: [#420336]

Textsuche nach Datenmuster in QXP?

Hans Haesler
  
Beiträge gesamt: 5826

22. Nov 2005, 11:23
Beitrag # 37 von 40
Beitrag ID: #420372
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerd,

das Problem wegen der Positionsnummer kann ich nicht nachvollziehen.
Da wäre ich sehr dankbar für ein entsprechendes XPress-Projekt.

Die einstelligen Preise werden berücksichtigt wenn der Zusatz bei den Cents {3,6}
lautet und bei den ganzen Beträgen {1,4}.

Damit letztere auch drei- und vierstellig erkannt werden, habe ich nun im Script-Objekt
'getStory' die Reihenfolge geändert. Jetzt wird zuerst geprüft, ob mindestens eine Zahl
gefolgt von Komma und Bindestrich vorkommen.

Wenn die Produktenummer vor einem Preis mit Cents in einer kleinen Box steht, dann wird
letzterer nicht geändert. Aber bei einem ganzzahligen Preis sollte dieser gefunden werden.
Doch in allen Fällen wird die Produktenummer nicht gekürzt. Müsste ich noch einbauen,
falls gewünscht.

Dasselbe gilt für die Möglichkeit, dass zwei Preise in einer kleinen Box vorkommen.

Ich werde Dir gleich die Version 03 des Scripts zustellen, in welcher schon mal das hier
im dritten Absatz angekündigte Verhalten eingebaut ist.

Gruss, Hans


als Antwort auf: [#420336]

Textsuche nach Datenmuster in QXP?

Anonym
Beiträge gesamt: 22827

22. Nov 2005, 12:30
Beitrag # 38 von 40
Beitrag ID: #420373
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
habe einfach die Buchstaben "A" bis "E" vor dem "ab" durch Zahlen ersetzt. Das war es schon bzgl. der Positionen.
Viele Grüß
Gerd


als Antwort auf: [#420336]

Textsuche nach Datenmuster in QXP?

Hans Haesler
  
Beiträge gesamt: 5826

22. Nov 2005, 14:56
Beitrag # 39 von 40
Beitrag ID: #420374
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerd,

das habe ich auch gemacht. Aber kein Problem feststellen können.
Vielleicht muss ja der nachfolgende Preis eine bestimmten Wert haben.

Deshalb: Bitte sende mir ein Projekt, in welchem eine Nummer zu
Storyanfang verhindert, dass der Preis gefunden wird.

Gruss, Hans


als Antwort auf: [#420336]

Textsuche nach Datenmuster in QXP?

Anonym
Beiträge gesamt: 22827

22. Nov 2005, 16:26
Beitrag # 40 von 40
Beitrag ID: #420375
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
mit der Änderung funktioniert es ja auch. Das war "bevor" das geändert war.

Es sind sicherlich immer wieder mal Sonderfälle, aber man kann schließlich nicht alles "automatisieren".

Wir versuchen jetzt mal weiter mit der Version. Ich persönlich finde das Teil "geil"!! Den Rest soll der Lektor machen. Das kann nicht mehr viel sein. Wir haben manchmal Bildtexte MIT KBNR + Kurztext + Preis und das wiederum in unterschiedlichen Reihenfolgen. Manchmal stimmen auch formatierungen nicht 100%. Darüber mach ich mir jetzt keine Sorgen mehr.

Vielen, vielen Dank, Hans! (Da schwingt gehöriger Respekt mit!)

Viele Grüße
Gerd


als Antwort auf: [#420336]
X