[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Array Überprüfung

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

Array Überprüfung

faxinger666
Beiträge gesamt: 128

15. Nov 2020, 17:48
Beitrag # 1 von 4
Bewertung:
(727 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

bei folgendem Problem komme ich leider nicht weiter;

Ich habe ein Array mit den Namen der Objektformate die in einem Skript verwendet werden. (_Skript_OF )

Dieses Namen-Array soll gegen die tatsächlich im Dokument vorkommenden Objektformatnamen geprüft werden.

Und genau hier finde ich keine Lösung.

Das ist mein Code:
Code
var _dok = app.activeDocument;  

var _Skript_OF = ["preis_1","preis_2", "preis_A", "preis_groß", "preis_klein", "preis_Oben", "preis_unten" ]

var _dok_OF = _dok.objectStyles.everyItem().name;


for (var z=0; z < _Skript_OF.length; z++) {


if (_Skript_OF[z] != _dok_OF) {
alert ("Fehler")}
};

Wie kann man das machen?
Also wenn der jeweilige Skript-Objektformatname im Dokument als Objektformatname nicht existiert soll ein Fahler ausgegeben werden.

Ich hoffe es ist halbwegs verständlich was ich erreichen möchte.

Danke
X

Array Überprüfung

WernerPerplies
Beiträge gesamt: 2536

15. Nov 2020, 18:29
Beitrag # 2 von 4
Beitrag ID: #577585
Bewertung:
(719 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin faxinger,

das wäre mein Vorschlag, sollte für alle Formattypen funktionieren:
Code
var /*Array*/styleNames = ["Test", "preis_1","preis_2", "preis_A", "preis_groß", "preis_klein", "preis_Oben", "preis_unten" ]; 
/*Array*/missing = checkStylesAgainstNameList(app.activeDocument, "object", styleNames);

if (missing.length > 0){
alert("{0} Fehler".replace("{0}", (missing.length)).toString());
alert(missing.join("\n"));
}
/*Array*/function checkStylesAgainstNameList(/*document*/doc, /*string*/type, /*Array*/styleNames){
var /*Array*/missingStyles = [],
/*Int*/l = styleNames.length;

for (var i = 0; i<l; i++){
if (!(doc[type+"Styles"].itemByName(styleNames[i]).isValid)){
missingStyles.push(styleNames[i]);
}
}
return missingStyles;
}


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: [#577584]

Array Überprüfung

Gerald Singelmann
  
Beiträge gesamt: 6244

16. Nov 2020, 04:02
Beitrag # 3 von 4
Beitrag ID: #577587
Bewertung: ||
(656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Diese Zeile

Code
if (_Skript_OF[z] != _dok_OF) { 


bedeutet

Zitat Wenn das z-te Element der einen Liste gleich der gesamten anderen Liste ist


Deswegen funktioniert das nicht.

Der Brot-und-Butter-Weg, zwei Listen abzugleichen, ist:
Code
for (var i = 0; i < liste1.length; i++ ) { 
var missing = true;
inner: for ( var j = 0; j < liste2.length; j++ ) {
if ( liste1[i] == liste2[j] ) {
missing = false;
break inner;
}
}
if ( missing ) alert( "fehlt" );
}


Wenn ich das richtig in Erinnerung habe, liefert
Code
var _dok_OF = _dok.objectStyles.everyItem().name; 

auch nicht alle Formate, sondern nur die, die nicht in Ordner stecken. Für alle gibt es "allObjectStyles."


als Antwort auf: [#577584]

Array Überprüfung

faxinger666
Beiträge gesamt: 128

17. Nov 2020, 08:18
Beitrag # 4 von 4
Beitrag ID: #577598
Bewertung:
(530 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Gerald und Werner,

vielen Dank für die Antworten. Genau das habe ich gesucht.

Ich finde beide Lösungsansätze interessant. Es führen doch viele Wege nach Rom.

Das hat mir sehr geholfen :-).

Einen schönen Tag noch und alles Gute.

LG
faxinger


als Antwort auf: [#577585]
(Dieser Beitrag wurde von faxinger666 am 17. Nov 2020, 08:20 geändert)
X

Aktuell

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
23.11.2020 - 24.11.2020

Digicomp Academy AG, Luzern, St. Gallen, Zürich
Montag, 23. Nov. 2020, 08.30 Uhr - Dienstag, 24. Nov. 2020, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

Preis: CHF 1'400.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/desktop-publishing/adobe-indesign-cc/kurs-indesign-cc-advanced

Veranstaltungen
23.11.2020 - 24.11.2020

Digicomp Academy AG, Basel und Bern
Montag, 23. Nov. 2020, 08.30 Uhr - Dienstag, 24. Nov. 2020, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

Preis: CHF 1'700.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/video-und-audio-publishing/adobe-after-effects-cc/kurs-adobe-after-effects-basic

Neuste Foreneinträge


Script um 2 Items von CC Library auf eine Seite zu plazieren

Bilder exportieren

Satz für blinde bzw. seheingeschränkte Menschen

Mockup Alias Ebene erstellen

Preflight Ticket Signature Preflight.p12

Fußnote im Fließtext Fett dargestelllt?

Abbildungsunterschriften: Numerierung pro Kapitel neu

ExtendScript Toolkit CS6 - Fenster von 'suchen & ersetzen' erscheint nicht mehr

Grep suche nur erster Fund anzeigen

Spaltenfarben in Tabelle mit Script
medienjobs