[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Objekt-Literal

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1563

13. Dez 2017, 00:02
Beitrag # 1 von 9
Bewertung:
(2033 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ich „spiele“ gerade ein bisschen mit einem „aus der hohlen Hand“ erzeugtem Objekt-Literal herum.

Beispielcode:
Code
var obj = { 
name1 : "value1",
name2 : "value2",
name3 : "value3"
}

Es ist problemlos möglich, die einzelnen values über ihre keys anzusprechen und auch zu ändern.

Egal ob:
obj['name2'] = "valueNeu";
oder
obj['name'+2] = "valueNeu";
oder
obj.name2 = "valueNeu";

… es gibt genügend Varianten für Aufruf und Neuzuweisung.


Allerdings kann ich keinen einfachen Weg finden, die einzelne keys/namen aufzurufen und zu ändern.

Kann mir hier jemand „unter die Arme greifen“ und mir erklären, wie ich z.B.
obj['name2'] = "value2";
obj['name3'] = "value3";
in
obj['key2'] = "value2";
obj['andererName3'] = "value3";
ändere?

Also im Objekt nur die keys ändere und die Werte beibehalte?

Den einzigen Weg der mir bis jetzt eingefallen ist, empfinde ich eher als einen kruden Workaround --> ein neues Objekt mit neuen keys erstellen und die passenden Werte einfach wieder zuordnen.

Geht das nicht doch direkter?
Vielen Dank im Voraus.

Wink
Viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton


Hier Klicken X

Objekt-Literal

Martin Fischer
  
Beiträge gesamt: 11871

13. Dez 2017, 06:58
Beitrag # 2 von 9
Beitrag ID: #561401
Bewertung:
(2018 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans-Jürgen,

versuch's mal so:

Code
var obj = { 
"name1" : "value1",
"name2" : "value2",
"name3" : "value3"
}

obj['key2'] = obj['name2'];
delete obj['name2'];


Viele Grüße
Martin


als Antwort auf: [#561400]
(Dieser Beitrag wurde von Martin Fischer am 13. Dez 2017, 07:38 geändert)

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2211

13. Dez 2017, 08:09
Beitrag # 3 von 9
Beitrag ID: #561403
Bewertung:
(1997 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pixxxelschubser,

Auf die Schnelle fällt mir nur dies ein (dürfte ziemlich langsam sein):
Code
// DESCRIPTION rename object properity 
// Dateiname: wpsObjectPropertyRename.jsx
// © 2017 by Werner Perplies, EDV-Anwendungsberatung,
// http://www.weepee.de, email: werner.perplies@weepee.de
// [modified]
// created: Wed Dec 13 2017 08:01:30 GMT+0100
// [lastFileProps:({time:"1487325362000", size:3813, checkSum:"262c6114"})]
// [end of header]
// #include "C:/Workspaces/wpsObjectPropertyRename.jsx
Object.prototype.propertyRename = function(oldName,newName)
{
var /*Any*/value = this[oldName];

delete this[oldName];
this[newName] = value;
}

// start only for testing
main();

/*Void*/function main()
{
var /*Void*/o = {name1: "name1", name2:"name2"};

o.propertyRename("name1", "name3");

alert(o.name3);
}
// end only for testing


Ach ja, wofür braucht man so etwas?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#561400]

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1563

13. Dez 2017, 22:39
Beitrag # 4 von 9
Beitrag ID: #561421
Bewertung:
(1913 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin und Werner,
ich danke euch sehr für eure Antworten. Das ist schon viel mehr als ich überhaupt erwartet hatte. Ich werde eure vorgeschlagenen Lösungen garantiert in den nächsten Tagen durchtesten und euch dann noch einmal ein Feedback geben.

Auf den ersten Blick sehen sowohl Martins Vorschlag für die „einfache“ Umbenennung als als Werners prototype-Funktion sehr vielversprechend aus.


Antwort auf: … Ach ja, wofür braucht man so etwas?

Bisher habe ich das nicht gebraucht. Doch irgendwann ist immer das erste Mal. Bin in ein Thema reingerutscht und die (einfachste) Lösung für das dortige Problem (ohne den Code komplett umzuschreiben) schien mir die Änderung der keys in dem bereits vorhandenen Objekt zu sein. Hat dann auch funktioniert. Wie gesagt mit dem etwas kruden Workaround über ein zweites neu anzulegendes Objekt. Bei Interesse findet ihr das Thema hier:
https://forums.adobe.com/thread/2422300

Danke nochmals und bis demnächst

Wink
Viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton




als Antwort auf: [#561403]
(Dieser Beitrag wurde von pixxxelschubser am 13. Dez 2017, 22:43 geändert)

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2211

14. Dez 2017, 09:26
Beitrag # 5 von 9
Beitrag ID: #561422
Bewertung:
(1876 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin pixxxelschubser,

Zitat Bei Interesse findet ihr das Thema hier:
https://forums.adobe.com/thread/2422300


Wenn ich das richtig verstanden habe, geht es in diesem Beispiel um die Loakalisierung eine Skriptes, und so etwas würde ich nicht im Skript hart codieren, sondern über externe Dateien lösen.

Ein Beispiel für solch eine Lösung findest Du in diesem Skript:

WpsIndFileIdentifier

Ist, wenn man die Problematik allgemeingültig lösen will, ein ziemlicher Aufwand, aber einmal gelöst und eingebaut, kann man ein Skript durch Erzeugung einer externen Meldungsdatei leicht an jede Sparache anpassen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#561421]

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1563

14. Dez 2017, 19:24
Beitrag # 6 von 9
Beitrag ID: #561443
Bewertung:
(1827 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,
zuerst dachte ich mir, ich hätte vielleicht den falschen Link gepostet.

Aber nein. Du hast das Thema etwas missverstanden. Es geht nicht um die Lokalisierung sondern vielmehr um eine Art „Ersatz-Grep“ für Illustrator. Das Script soll (basierend auf der Wortgruppen-Liste) einzelne Wörter oder Wortgruppen durch die entsprechenden Ausdrücke in der Sprache Khmer in allen Textrahmen in allen offenen Dokumenten ersetzen.

Das ist auch schon alles. Trotzdem Danke.

Wink
Viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton




als Antwort auf: [#561422]

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2211

14. Dez 2017, 19:47
Beitrag # 7 von 9
Beitrag ID: #561446
Bewertung:
(1825 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pixxxelschubser,

Zitat zuerst dachte ich mir, ich hätte vielleicht den falschen Link gepostet.

Ok, ich schaue mir das noch einmal an, aber ich denke die Aufgabenstellung ändert nichts am Weg:

Das Objekt als externe Json-Dateien pflegen und je nach Bedarf einlesen und keinesfalls die Eigenschaftsnamen nachträglich ändern.

Das Ändern der Eigenschaftsnamen durch Löschen und neu Erzeugen der Eigenschaften dürfte übrigens zu heftiger Tätigkeit des Garbage Collectors führen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#561443]

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1563

14. Dez 2017, 20:31
Beitrag # 8 von 9
Beitrag ID: #561448
Bewertung:
(1819 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: … Das Ändern der Eigenschaftsnamen durch Löschen und neu Erzeugen der Eigenschaften dürfte übrigens zu heftiger Tätigkeit des Garbage Collectors führen.


Da stimme ich dir doch zu 100% zu.

Und vielleicht ist dann gerade deswegen der Weg über ein zweites unabhängiges Objekt (das auf dem ersten basiert) doch nicht ein ganz so „kruder Workaround“ für den ich ihn zuerst gehalten hatte. Immerhin sind beide Objekte in einer Funktion gekapselt und somit dürften sich die Auswirkungen auf den globalen Scope ziemlich in Grenzen halten.

Was man trotzdem nicht nicht vergessen darf: das Ganze war keine Auftragsarbeit. Sondern vielmehr nur eine kleine Gefälligkeit im Rahmen des Forenalltags. Für den TO funktioniert das Teil hinreichend und ich schätze, solange es ihm die aufwendige Handarbeit erleichtert, nimmt eine etwas heftigere Tätigkeit der Garbage Collection sicherlich gerne in Kauf.

Und mich selbst hat zu diesem Thema hier auch nur der Aspekt der eigenen Wissenserweiterung verleitet.

Wink
Viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton




als Antwort auf: [#561446]

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2211

15. Dez 2017, 07:54
Beitrag # 9 von 9
Beitrag ID: #561451
Bewertung:
(1772 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin pixxxelschubser,

Zitat Was man trotzdem nicht nicht vergessen darf: das Ganze war keine Auftragsarbeit. Sondern vielmehr nur eine kleine Gefälligkeit im Rahmen des Forenalltags. Für den TO funktioniert das Teil hinreichend und ich schätze, solange es ihm die aufwendige Handarbeit erleichtert, nimmt eine etwas heftigere Tätigkeit der Garbage Collection sicherlich gerne in Kauf.

Klar, wobei es in dem Skript noch weiteres Potential zur Verbesserung der Geschwindigkeit gäbe.

Noch ein Hinweis zum Thema externe Datendatei:

Der Einsatz eines leistungsfähigen JSON-Parsers löst natürlich ganz nebenbei auch das Escape-Problem (\n & Co) in dem Skript.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#561448]
Hier Klicken X
Hier Klicken

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.09.2018

Hochschuloe der Medien, Stuttgart
Mittwoch, 26. Sept. 2018, 19.00 - 21.00 Uhr

Vertrag

Nur auf den ersten Blick scheint dieses Thema exotisch. Aber eine neue EU-Richtlinie und deren Auswirkungen auf deutsche Gesetze werden dieses Thema auch für Publisher interessant machen. Die EU-Richtlinie "2102 zu Barrierefreiheit" besagt folgendes: Ab dem 23. September 2018 müssen alle öffentlichen Stellen ihre neuen (Office- oder PDF-) Dokumente grundsätzlich barrierefrei veröffentlichen. Im Juni wurde der Gesetzentwurf zur Umsetzung dieser Richtlinie im deutschen Bundestag vom "Ausschuss für Arbeit und Soziales" (19/2728) angenommen. Es wird also ernst für "öffentliche Stellen" und damit auch für deren Dienstleister, die mit der Umsetzung beauftragt werden. Die Richtlinie gilt nämlich nicht nur für Bundes- und Landesbehörden, sondern auch für Verbände, die im Allgemeininteresse liegende Aufgaben erfüllen. Das wären somit auch Gerichte, Polizeistellen, Krankenhäuser, Universitäten, Bibliotheken und einige mehr. Weitere Informationen findest Du hier, hier und hier. Wenn also oben genannte Auftraggeber zu Deinen Kunden zählen, solltest Du Dich vorbereiten. Und da es neben Websites auch um alle downloadbaren Dateien geht sind eben auch PDFs zukünftig barrierefrei zu erstellen. Arbeitet man in InDesign, können dort einige Vorbereitungen getroffen werden. Klaas Posselt ist der ausgewiesene Spezialist im deutschsprachigen Raum für alle Fragen rund um das Thema. Deshalb freuen wir uns, dass er uns in einem Vortrag die Grundlagen dazu vermitteln wird. Wir setzen voraus, dass Du den Umgang mit InDesign gewohnt bist, die Gründe und Vorteile von der Nutzung von Formaten kennst und weißt, wie man lange Dokumente „richtig“ aufbaut. Der Vortrag setzt bewusst DANACH ein. Inhalt des Vortrages ist der Hintergrund von „Barrierefreiheit“ und Möglichkeiten und Grenzen innerhalb von InDesign. Es wird erklärt, welche Bedeutung das kostenpflichtige PlugIn MadeToTag hat und warum und für was man es braucht. Ziel ist es den Rahmen aufzuzeigen, in dem sich das Thema „Barrierefreiheit“ in InDesign abspielt. Du weißt hinterher, wo die „Baustellen“ sind, wo Du weitergehende Infos bekommst und welchen Weg Du einschlagen musst. Am nächsten Tag veranstalten wir zwei Bootcamps, die das Thema praktisch vertiefen. "IDUGS Bootcamp #2" und "IDUGS Bootcamp #3" Klaas Posselt ist studierter Dipl.-Ing. für Druck- und Medientechnik und kam über verschiedene Anfragen zum Thema barrierefreie PDF Dokumente. Seit über 10 Jahren arbeitet er in den Bereichen Medientechnik und Publishing zwischen Medienherstellern, Druckermaschinen und digitalen Ausgabekanälen. Er schult, begleitet und unterstützt Kunden bei der Einführung und Optimierung von Publikationsprozessen und auf dem Weg zu neuen digitalen Ausgabekanälen — egal ob E-Books, barrierefreie PDFs oder Webplattformen. Als Chairman des PDF/UA Competence Center der PDF Association beteiligt er sich an der Weiterentwicklung und Verbreitung des Standards PDF/UA für barrierefreie PDF Dokumente. Diese Veranstaltung kommt nur zu Stande durch die freundliche Unterstützung von "Six Offene Systeme GmbH" -- Enterprise-Content-Management-System und Media-Asset-Management-System.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

https://idug47.eventbrite.de

Veranstaltungen
27.09.2018

Screen IT, Uster
Donnerstag, 27. Sept. 2018, 17.30 - 20.00 Uhr

Infoveranstaltung

Das Angebot an Publishing-Software ist gross. Deshalb empfiehlt sich eine externe Beratung durch unabhängige Software-Experten aus der jeweiligen Branche. Nicht immer muss es eine teure Mietlösung sein, die nach Beendigung der Mietdauer einem nicht einmal gehört. Es gibt sehr gute und auch in der Qualität ausreichende Alternativen, ja sogar kostenlose Freeware. Lassen Sie sich an diesem Abend einmal vor Augen führen, was diese Programme können und wie viel sie kosten.

Ja

Organisator: Screen IT und pre2media

Kontaktinformation: Peter Jäger, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/infoanlass/