[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: 165

15. Nov 2020, 17:48
Beitrag # 1 von 4
Bewertung:
(5561 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: 2680

15. Nov 2020, 18:29
Beitrag # 2 von 4
Beitrag ID: #577585
Bewertung:
(5553 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 Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#577584]

Array Überprüfung

Gerald Singelmann
  
Beiträge gesamt: 6251

16. Nov 2020, 04:02
Beitrag # 3 von 4
Beitrag ID: #577587
Bewertung: ||
(5490 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: 165

17. Nov 2020, 08:18
Beitrag # 4 von 4
Beitrag ID: #577598
Bewertung:
(5364 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

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
21.06.2022

Online
Dienstag, 21. Juni 2022, 10.00 - 10.30 Uhr

Webinar

Viele Druckereien – kleine und große – suchen heute nach Wegen, ihre Effizienz und Produktivität zu steigern. Dabei erkennen sie oft, dass sie sich dringend um die Optimierung, Standardisierung und Automatisierung ihrer Workflows und Prozesse kümmern sollten. In unserer kostenlosen, jeweils ca. 30 minütigen Webinar-Reihe erfahren Sie, wie Sie die Effizienz- und Produktivitätspotenziale Ihrer Druckerei erschließen können – und wie einfach und kostengünstig das sein kann.

kostenlose 3-teilige Webinar-Reihe, 21., 23. und 26. Juni 2022, jeweils 10:00 - 10:30

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://impressed-workflow-server.de/impressed-webinar-reihe-the-big-picture/

Impressed Webinar-Reihe THE BIG PICTURE
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/