[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt CS3: Text Suchen&Ersetzen

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

CS3: Text Suchen&Ersetzen

schlang
Beiträge gesamt: 54

8. Sep 2009, 18:44
Beitrag # 1 von 8
Bewertung:
(3092 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

wieder einmal quält mich folgendes: ich möchte einen Text durch einen anderen Text ersetzen, jedoch ohne dabei die zugewiesenen Zeichenformate zu löschen. Geht das?

Danke im Voraus
X

CS3: Text Suchen&Ersetzen

Hans Haesler
  
Beiträge gesamt: 5826

9. Sep 2009, 08:07
Beitrag # 2 von 8
Beitrag ID: #407746
Bewertung:
(3054 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo schlang,

ich nehme an, dass Du es versucht hast. Wie sieht Dein Script aus? Wie der Text? Wo gehen die Zeichenformatzuweisungen verloren?

Gruss, Hans


als Antwort auf: [#407725]

CS3: Text Suchen&Ersetzen

Gerald Singelmann
  
Beiträge gesamt: 6269

9. Sep 2009, 08:08
Beitrag # 3 von 8
Beitrag ID: #407747
Bewertung:
(3054 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wahrscheinlich ja, aber die Beschreibung müsste etwas präziser sein, um das mit Gewissheit zu sagen.


als Antwort auf: [#407725]

CS3: Text Suchen&Ersetzen

schlang
Beiträge gesamt: 54

9. Sep 2009, 10:07
Beitrag # 4 von 8
Beitrag ID: #407764
Bewertung:
(3035 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also ich habe folgenden Text (das <hochgestellt> repräsentiert das Zeichenformat):

Code
%Testprodukt <hochgestellt>(C)</hochgestellt>% 


den möchte ich durch diesen Text ersetzen:

Code
Testprodukt <hochgestellt>(C)</hochgestellt> 


Ich will also nur die Prozentzeichen am Anfang und am Ende entfernen. Wenn ich mir den Inhalt des Textobjekts geben lasse, bekomme ich folgenden Text:

Code
%Testprodukt (C)% 


Mein Code macht daraus:

Code
replaceText(text, "%Testprodukt (C)%", "Testprodukt (C)"); 

/*void*/ function replaceText(/*text*/ text, /*string*/ oldContent, /*string*/ newContent)
{
//clean
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;

//set the find options.
app.findChangeTextOptions.caseSensitive = false;
app.findChangeTextOptions.includeFootnotes = false;
app.findChangeTextOptions.includeHiddenLayers = false;
app.findChangeTextOptions.includeLockedLayersForFind = false;
app.findChangeTextOptions.includeLockedStoriesForFind = false;
app.findChangeTextOptions.includeMasterPages = true;
app.findChangeTextOptions.wholeWord = false;

//declare
app.findTextPreferences.findWhat = oldContent;
app.changeTextPreferences.changeTo = newContent;

//replace
text.changeText();

//clean
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
}



Nach dem Ersetzen ist das Zeichenformat <hochgestellt> weg. Wenn ich das über den Suchen&Ersetzen Dialog in der GUI mache übrigens auch.


als Antwort auf: [#407747]

CS3: Text Suchen&Ersetzen

Hans Haesler
  
Beiträge gesamt: 5826

9. Sep 2009, 10:38
Beitrag # 5 von 8
Beitrag ID: #407769
Bewertung:
(3017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo schlang,

ich kann das Problem bestätigen. Abhilfe: Das Suchen/Ersetzen aufteilen.
Code
replaceText(text, "%Testprodukt", "Testprodukt");  
replaceText(text, "©%", "©");

Gruss, Hans


als Antwort auf: [#407764]

CS3: Text Suchen&Ersetzen

schlang
Beiträge gesamt: 54

9. Sep 2009, 11:04
Beitrag # 6 von 8
Beitrag ID: #407774
Bewertung:
(3002 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Okay danke, mit diesem Workaround kann ich leben :)


als Antwort auf: [#407769]

CS3: Text Suchen&Ersetzen

Uwe Laubender
Beiträge gesamt: 5316

9. Sep 2009, 11:38
Beitrag # 7 von 8
Beitrag ID: #407779
Bewertung:
(2996 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Hans
@Schlang!

Wie ist denn "text" definiert? Wenn ich den geposteten Code im ESTK laufen lasse, wirft mir das eine Fehlermeldung "text ist nicht definiert". Ich würde gerne die Funktion "replaceText" vollständig verstehen:
Code
function replaceText(/*text*/ text, /*string*/ oldContent, /*string*/ newContent) 


Ist "text" der "contents" eines "textFrame"-Objektes?
Habe mal die Zeile:
Code
var text = app.documents[0].pages[0].textFrames[0].contents; 

dazugesetzt, eine Seite mit nur einem Textrahmen mit dem entsprechenden Inhalt angelegt und den Code im ESTK laufen lassen.
Dann kam natürlich nicht mehr "text ist nicht definiert", aber das ESTK meckerte an:
"text.changeText()" ist keine Funktion.

Bin etwas ratlos. Klärt mich bitte auf.


als Antwort auf: [#407769]

CS3: Text Suchen&Ersetzen

Hans Haesler
  
Beiträge gesamt: 5826

9. Sep 2009, 12:02
Beitrag # 8 von 8
Beitrag ID: #407784
Bewertung:
(2987 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

ich habe beim Ausprobieren die fehlende Variable so definiert:
Code
var text = app.selection[0].parentStory; 

Dadurch wird das Ersetzen auf den ausgewählten Rahmen beschränkt.

Gruss, Hans


als Antwort auf: [#407779]
X