I am working on a script to change the file path of a hyperlink
tell application "Adobe InDesign CS5"
tell active document
set listOfButtons to every button
repeat with thisButton in listOfButtons
tell thisButton
set FilePath to file path of goto anchor behaviors
return FilePath
end tell
end repeat
end tell
end tell
the answer I get is : {“Content:Pricelist:Catalog:Interactief:BE:21_ES_Ventielen_be_dig.indd”}
Now I want to change “BE” into “FR” and “be” into “fr”
(in the future I will have to change it to other suffix, so it would be nice if this can be included as well )
Can anyone help we to do this?
try this
to split(someText, scheidingsteken) -- functie om string om te zetten naar lijst
set AppleScript's text item delimiters to scheidingsteken -- wijzig standaard scheidingstekens
set aList to someText's text items -- zet string om in list
set AppleScript's text item delimiters to {""} -- standaard scheidingstekens herstellen
return aList -- de lijst doorgeven
end split
to stringify(aList, scheidingsteken) -- functie om string om te zetten naar lijst
set AppleScript's text item delimiters to scheidingsteken -- wijzig standaard scheidingstekens
set someText to aList as string -- zet lijst om in string
set AppleScript's text item delimiters to {""} -- standaard scheidingstekens herstellen
return someText -- de lijst doorgeven
end stringify
set aPath to {"Content:Pricelist:Catalog:Interactief:BE:21_ES_blablablaVentielen_be_dig.indd"}
set aPath to split((item 1 of aPath), ":")
repeat with i from 1 to count aPath
considering case
if item i of aPath is "BE" then
set item i of aPath to "FR"
else if item i of aPath is "FR" then
set item i of aPath to "BE"
end if
end considering
end repeat
set last item of aPath to split(last item of aPath, "_")
repeat with j from 1 to (count last item of aPath)
considering case
if item j of last item of aPath is "be" then
set item j of last item of aPath to "fr"
else if item j of last item of aPath is "fr" then
set item j of last item of aPath to "be"
end if
end considering
end repeat
set last item of aPath to stringify(last item of aPath, "_")
set aPath to stringify(aPath, ":")
return {aPath}
Damiaan,
dank je wel… ik zie dat je ook Nederlands spreekt
Ik ben nog maar een beginner… misschien een domme vraag…
waar moet ik jouw stukje script in het mijne plakken?
ik had dit gedaan; maar kreeg nog een foutmelding:
to split(someText, scheidingsteken) -- functie om string om te zetten naar lijst
set AppleScript's text item delimiters to scheidingsteken -- wijzig standaard scheidingstekens
set aList to someText's text items -- zet string om in list
set AppleScript's text item delimiters to {""} -- standaard scheidingstekens herstellen
return aList -- de lijst doorgeven
end split
to stringify(aList, scheidingsteken) -- functie om string om te zetten naar lijst
set AppleScript's text item delimiters to scheidingsteken -- wijzig standaard scheidingstekens
set someText to aList as string -- zet lijst om in string
set AppleScript's text item delimiters to {""} -- standaard scheidingstekens herstellen
return someText -- de lijst doorgeven
end stringify
tell application "Adobe InDesign CS5"
tell active document
set listOfButtons to every button
repeat with thisButton in listOfButtons
tell thisButton
set FilePath to file path of goto anchor behaviors
set aPath to FilePath
set aPath to split {(item 1 of aPath), ":"}
repeat with i from 1 to count aPath
considering case
if item i of aPath is "BE" then
set item i of aPath to "FR"
else if item i of aPath is "FR" then
set item i of aPath to "BE"
end if
end considering
end repeat
set last item of aPath to split {last item of aPath, "_"}
repeat with j from 1 to (count last item of aPath)
considering case
if item j of last item of aPath is "be" then
set item j of last item of aPath to "fr"
else if item j of last item of aPath is "fr" then
set item j of last item of aPath to "be"
end if
end considering
end repeat
set last item of aPath to stringify(last item of aPath, "_")
set aPath to stringify(aPath, ":")
return {aPath}
end tell
end repeat
end tell
end tell
Ja dat ziet er normaal goed uit.
Misschien moet je me eens de error doorsturen en zeggen wat je krijgt als resultaat als je
return aPath
eens na de regel
set aPath to FilePath
in jouw script schrijft.
Dit is wat ik dan krijg als antwoord:
tell application “Adobe InDesign CS5”
get every button of active document
→ {button id 211 of spread id 185 of document id 161, button id 200 of spread id 185 of document id 161}
get file path of every goto anchor behavior of button id 211 of spread id 185 of document id 161
→ {“Content:Pricelist:Catalog:Interactief:BE:32_EC_Twine Pinch_be_dig.indd”}
end tell
Resultaat:
{“Content:Pricelist:Catalog:Interactief:BE:32_EC_Twine Pinch_be_dig.indd”}
Volgens mij werkt het tot hier goed en heet hij een probleem bij het splitsen van het path.
Nu, ik heb ook wel gemerkt dat als ik
return FilePath
ingeef na
set FilePath to file path of goto anchor behaviors
Dat ik dan een lijst van alle filepaths krijg. Ik weet niet of dit ook een probleem kan zijn.
Ik hoop echt dat dit script lukt want als ik al die buttons moet gaan herlinken dan ben ik wel even zoet (het zijn in totaal 440 pagina’s) en ik ga die in 10 talen moeten maken…
Lieve vrienden,
for all no dutch speaking people who are interested in this topic, please continue writing in English
thank you