[GastForen Programmierung/Entwicklung AppleScript Abk. -> Langtext über Record oder Hilfsvariable

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

Abk. -> Langtext über Record oder Hilfsvariable

Goar
Beiträge gesamt: 395

30. Jun 2004, 15:01
Beitrag # 1 von 4
Bewertung:
(1198 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

in einem angelieferten Tabtext stehen Abkürzungen nach dem Muster "EWA" oder "WIF". Im Endprodukt soll die Bedeutung dieser Abkürzungen als Langtext erscheinen.
Zunächst habe ich versucht, die Aufschlüsselung mit einem Record zu lösen:
Code
set typeRoom to {E:"Einzelzimmer", D:"Doppelzimmer", Z:"Zweibettzimmer", D:"Dreibettzimmer", V:"Vierbettzimmer", W:"Ferienwohnung"} 

In typeRoom stehen die Definitionen für die erste Stelle der Abkürzung. An der zweiten Stelle können die gleichen Buchstaben auftreten, sie sagen aber etwas über die sanitäre Ausstattung aus. Daher wird die zweite Stelle in einer weiteren Liste aufgeschlüsselt. Da das prinzipiell nach dem gleichen Muster geschehen kann, lasse ich diesen Schritt hier weg.
Der erste Kennbuchstabe der Abkürzung, also z.B. das E (von EWA) habe ich in die Variable theSpec1 geladen. Leider ist es mir nicht gelungen, damit den Eintrag E der Liste typeRoom anzusprechen.

Dann bin ich den Weg über eine Hilfsvariable gegangen:
---
set typeRoom to {"Einzelzimmer", "Doppelzimmer", "Zweibettzimmer", "Dreibettzimmer", "Vierbettzimmer", "Ferienwohnung"}
set keyTypeRoom to "EDZTVW"
Code
typeRoom enthält jetzt nur die Langtexte, keyTypeRoom die Kennbuchstaben in gleicher Sortierung. Der erste Kennbuchstabe ist auch hier in die Variable theSpec1 geladen. So greife ich über die Position des Kennbuchstaben in der Hilfsvariablen keyTypeRoom auf das Langtextelement der Liste typeRoom zu. 

  set theRoom to item (offset of theSpec1 in keyTypeRoom) of typeRoom
---
Die Frage ist, ob mein erster Ansatz über Record nicht doch umsetzbar ist. Diese Lösung scheint mir nämlich eleganter zu sein.

Gruß, Goar
X

Abk. -> Langtext über Record oder Hilfsvariable

Hans Haesler
  
Beiträge gesamt: 5826

1. Jul 2004, 16:39
Beitrag # 2 von 4
Beitrag ID: #418859
Bewertung:
(1197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

dies auf die Schnelle ausprobiert:
Code
set whatType to Z of typeRoom --> "Zweibettzimmer" 

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418858]

Abk. -> Langtext über Record oder Hilfsvariable

Goar
Beiträge gesamt: 395

1. Jul 2004, 21:49
Beitrag # 3 von 4
Beitrag ID: #418860
Bewertung:
(1197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans (hoffentlich gut erholt),

das Problem ist, dass dieses Z (oder E, D, T, V, W) sich in der Variablen theSpec1 befindet.
Ich wünschte mir, die Zeile würde so funktionieren:
Code
set whatType to theSpec1 of typeRoom 

dann könnte ich, ganz gleich, welcher Kennbuchstabe gerade in der Variablen gelandet ist, immer den richtigen Langtext aus der Liste erhalten. Leider wird hier nicht auf den Inhalt von theSpec1 zugegriffen, sondern der Name der Variablen wird als Label interpretiert und natürlich in typeRoom nicht gefunden.

Dagegen darf die Zeile
Code
set whatType to Z of typeRoom 

doch nur ausgeführt werden, wenn die Variable theSpec1 wirklich ein Z enthält.
Um das herauszubekommen müsste der Inhalt der Variablen erst abgefragt werden:
---
if theSpec1 = "Z" then
set whatType to Z of typeRoom
end if
Code
Das würde auch bedeuten, dass für jeden denkbaren Fall (s.o.) eine solche Abfrage erforderlich wäre. Dann könnte ich aber auch gleich den Langtext hineinschreiben, da die Liste außer der Übersichtlichkeit keinen Nutzen mehr hätte. 

if theSpec1 = "Z" then
set whatType to "Zweibettzimmer"
end if
Code
Ist es jetzt deutlicher geworden? Vielleicht gibt es ja so etwas wie 

set whatType to (content of theSpec1) of typeRoom -- oder
set whatType to (value of theSpec1) of typeRoom
---
Gruß, Goar


als Antwort auf: [#418858]

Abk. -> Langtext über Record oder Hilfsvariable

Hans Haesler
  
Beiträge gesamt: 5826

1. Jul 2004, 23:56
Beitrag # 4 von 4
Beitrag ID: #418861
Bewertung:
(1197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

ja, danke, wir haben uns sehr gut erholt. :-)

Und ja, jetzt verstehe ich, was Du meinst. Allerdings wird nicht der Name der Variablen als Label interpretiert, sondern der Inhalt der Variable ist ein String. Dadurch gibt es beim Ausführen die Fehlermeldung.

Leider kann die 'name property' (also der Kennbuchstabe) nicht als Variable verwendet werden. Die Variable kann auch nicht "unterwegs" zur 'label' konvertiert werden.

Was bleibt ist die Zwei-Listen-Lösung Deines ersten Postings, in welcher die Position des Kennbuchstabens mit 'offset of' festgestellt wird. Aber dazu wird die Scripting Addition "Standard Additions" eingesetzt (bremst die Ausführung).

Eine andere (schnellere?) Möglichkeit hast Du oben mit dem 'if'-Test angedeutet. Aber dieser sollte im 'if / else if'-Format benutzt werden. Dadurch wird die Schleife sofort verlassen, wenn die Werte übereinstimmen. Sonst &#150; bei einzelnen 'if'-Vergleichen &#150; werden alle Tests durchgeführt. Auch wenn die Übereinstimmung schon längst gefunden worden ist.
---
if theSpec1 = "Z" then
  set whatType to "Zweibettzimmer"
else if theSpec1 = "D" then
  set whatType to "Doppelzimmer"
else if theSpec1 = "W" then
  set whatType to "Ferienwohnung"
else if theSpec1 = "E" then
  set whatType to "Einzelzimmer"
else if theSpec1 = "V" then
  set whatType to "Vierbettzimmer"
end if
---
Wie hier angedeutet, sollten die mutmasslich häufigsten Vorkommen in die ersten Tests gesetzt werden. Es zahlt sich speedmässig aus.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418858]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!