Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Suchen und Ersetzen mit Formatgruppen (CS6,WIN10)

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

Suchen und Ersetzen mit Formatgruppen (CS6,WIN10)

cwenet
Beiträge gesamt: 1139

16. Apr 2016, 08:56
Beitrag # 1 von 6
Bewertung:
(3130 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

ich versuche gerade eine kleine Funktion zu basteln, mit der ich in der aktuellen Auswahl bestimmte Zeichenformate entfernen kann.

So sieht es im Moment aus:

Code
function se_charstyle( zeichenformat ) { 

var auswahl = app.selection[0];
var _cStyleGroup = app.activeDocument.characterStyleGroups.itemByName('Gruppe_01');

app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;

if (_cStyleGroup != null) {

if( _cStyleGroup.characterStyles.itemByName( zeichenformat ) != null ) {
app.findTextPreferences.appliedCharacterStyle = _cStyleGroup.characterStyles.itemByName( zeichenformat );
}
}else{
if( app.activeDocument.characterStyles.item( zeichenformat ) != null ) {
app.findTextPreferences.appliedCharacterStyle = zeichenformat;
}
}

app.changeTextPreferences.appliedCharacterStyle = app.documents.firstItem().characterStyles.firstItem(); // ohne Zeichenformat
auswahl.changeText();
app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;
}

se_charstyle( "Zeichenformat_01" );
se_charstyle( "Zeichenformat_02" );


Leider klappt das nicht richtig.

Bitte um Hilfe. Demodok anbei.

Danke und Gruß
Christoph

Anhang:
formatgruppe.idml (34.4 KB)
X

Suchen und Ersetzen mit Formatgruppen (CS6,WIN10)

Kai Rübsamen
Beiträge gesamt: 4684

16. Apr 2016, 11:16
Beitrag # 2 von 6
Beitrag ID: #549018
Bewertung:
(3082 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

"leider klappt das nicht richtig" ist ja ne super Fehlerbeschreibung ;-)

Ich hab das Ganze mal etwas umgebastelt:

Code
se_charstyle( "Zeichenformat_01" );  
se_charstyle( "Zeichenformat_02" );

function se_charstyle( zeichenformat ) {

var curDoc = app.documents[0];
var auswahl = app.selection[0];
var _cStyleGroup = curDoc.characterStyleGroups.itemByName('Gruppe_01');

app.findTextPreferences = app.changeTextPreferences = null;

if (_cStyleGroup.isValid && _cStyleGroup.characterStyles.itemByName(zeichenformat).isValid) {
app.findTextPreferences.appliedCharacterStyle = _cStyleGroup.characterStyles.itemByName(zeichenformat);
}
else if (curDoc.characterStyles.item(zeichenformat).isValid) {
app.findTextPreferences.appliedCharacterStyle = zeichenformat;
}
else {
alert("Achtung:\r Dir fehlt das Format" + zeichenformat);
exit();
}

app.changeTextPreferences.appliedCharacterStyle = curDoc.characterStyles[0]; // ohne Zeichenformat
auswahl.changeText();
app.findTextPreferences = app.changeTextPreferences = null;
}


Aber auch meine Version löscht dir nicht alles! Du prüfst, ob es eine Gruppe gibt. Falls nicht, nimm das ZF das lose da liegt. Du hast aber beides! Wenn du also beides löschen willst, muss auch die Prüfung anders lauten.


als Antwort auf: [#549015]

Suchen und Ersetzen mit Formatgruppen (CS6,WIN10)

cwenet
Beiträge gesamt: 1139

16. Apr 2016, 11:27
Beitrag # 3 von 6
Beitrag ID: #549019
Bewertung:
(3074 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Kai,

danke fürs Antworten. In der Tat: ich hatte die Fehlerbeschreibung vergessen.

Ziel soll sein, dass alle Zeichenformate entfernt werden.
Weiterhin erhalte ich die Fehlermeldung:
Fehlernummer 2: Auswahl ist undefiniert


Grüße
Christoph


als Antwort auf: [#549018]

Suchen und Ersetzen mit Formatgruppen (CS6,WIN10)

Uwe Laubender
Beiträge gesamt: 5316

16. Apr 2016, 14:00
Beitrag # 4 von 6
Beitrag ID: #549021
Bewertung:
(3011 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,
nur mal so kurz gefragt:

Du hattest beim Skriptlauf schon einen Textrahmen mit Text oder Text im Textrahmen selbst ausgewählt, oder?

Denn dann löst die Zeile 20 in Deinem Skript:
Code
auswahl.changeText(); 

genau diese von Dir beschriebene Fehlermeldung aus.

Hier etwas detailierter:
Code
/* 

TypeError number 21
TypeError message undefined ist kein Objekt

*/


Teste Deinen Code mal ohne dass er in einer Funktion gepackt ist, dann müsstest Du schon klarer sehen.

Code
var auswahl = app.selection[0];   
var _cStyleGroup = app.activeDocument.characterStyleGroups.itemByName("Gruppe_01");

app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;

if (_cStyleGroup != null) {

if( _cStyleGroup.characterStyles.itemByName( "Zeichenformat_01" ) != null ) {
app.findTextPreferences.appliedCharacterStyle = _cStyleGroup.characterStyles.itemByName( "Zeichenformat_01" );
}
}else{
if( app.activeDocument.characterStyles.item( "Zeichenformat_01" ) != null ) {
app.findTextPreferences.appliedCharacterStyle = "Zeichenformat_01";
}
}

app.changeTextPreferences.appliedCharacterStyle = app.documents.firstItem().characterStyles.firstItem();
auswahl.changeText();

app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;



als Antwort auf: [#549019]

Suchen und Ersetzen mit Formatgruppen (CS6,WIN10)

Uwe Laubender
Beiträge gesamt: 5316

16. Apr 2016, 14:14
Beitrag # 5 von 6
Beitrag ID: #549022
Bewertung:
(3006 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Um's etwas leichter zu machen, vielleicht so:

Code
var characterGroupName = "Gruppe_01"; 
var characterStyleName = "Zeichenformat_02";

var auswahl = app.selection[0];
var _cStyleGroup = app.activeDocument.characterStyleGroups.itemByName(characterGroupName);

app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;

if (_cStyleGroup != null) {

if( _cStyleGroup.characterStyles.itemByName(characterStyleName) != null )
{
app.findTextPreferences.appliedCharacterStyle = _cStyleGroup.characterStyles.itemByName(characterStyleName);
};
};
else
{
if( app.activeDocument.characterStyles.item(characterStyleName) != null )
{
app.findTextPreferences.appliedCharacterStyle = characterStyleName;
};
};

if(!app.findTextPreferences.appliedCharacterStyle.isValid)
{
$.writeln("The applied character style is not valid.");
}



app.changeTextPreferences.appliedCharacterStyle = app.documents.firstItem().characterStyles.firstItem();

try{ auswahl.changeText() }catch(e){$.writeln(e.name +" "+ e.number +" "+"Zeile: "+e.line+" "+"Meldung: "+e.message)};

app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;



als Antwort auf: [#549021]

Suchen und Ersetzen mit Formatgruppen (CS6,WIN10)

cwenet
Beiträge gesamt: 1139

17. Apr 2016, 08:38
Beitrag # 6 von 6
Beitrag ID: #549027
Bewertung:
(2796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
vielen Dank an Uwe und Kai,

für die Codeschnipsel zur Inspiration.

Ich habe es nun zerpflückt und in zwei Schritten gemacht:

Code
var characterGroupName = "Gruppe_01";  
var characterStyleName = "Zeichenformat_02";

var auswahl = app.selection[0];
var _cStyleGroup = app.activeDocument.characterStyleGroups.itemByName(characterGroupName);


app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;

if (_cStyleGroup != null) { //Zeichenformat innerhalb der Gruppe
if( _cStyleGroup.characterStyles.itemByName( characterStyleName ) != null )
{
app.findTextPreferences.appliedCharacterStyle = _cStyleGroup.characterStyles.itemByName(characterStyleName);
app.changeTextPreferences.appliedCharacterStyle = app.documents.firstItem().characterStyles.firstItem();
auswahl.changeText();
};
}
app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;


if( app.activeDocument.characterStyles.item( characterStyleName ) != null ) //Zeichenformat ausserhalb der Gruppe
{
app.findTextPreferences.appliedCharacterStyle = characterStyleName;
app.changeTextPreferences.appliedCharacterStyle = app.documents.firstItem().characterStyles.firstItem();
auswahl.changeText();
}
app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;


Es ist sicher sehr umständlich aber für mich besser nachvollziehbar.



Schönen Tag
Christoph


als Antwort auf: [#549022]
X