Keynote v12.1書類の現在のスライドにあるdefault title itemに入っている改行コード(?)を除去するAppleScriptです。
結論から言うと、これが改行コード(LFとかCRとか)ではなく、Unicode特殊文字の「LINE SEPARATOR」(U+2028)であることが、データをhexdumpしてわかりました(AppleScript書いてるだけなのに、hexdumpのお世話になることの多いこと、多いこと)。なので、文字コードをUTF-16(AppleScript側の文字コード)で指定して置換を行なっています。
# AppleScriptのネイティブ文字コードはUTF-16BEです
Keynote書類の各Slideに存在しているdefault title itemから文字列(object text)を取得し、改行コードを除去する処理を行います。
AppleScript名:default title item部分に入った改行コードを除去する.scptd |
— – Created by: Takaaki Naganoya – Created on: 2022/10/09 — – Copyright © 2022 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions tell application "Keynote" tell front document tell current slide set jj to object text of default title item –https://www.fileformat.info/info/unicode/char/2028/index.htm –Unicode Character ’LINE SEPARATOR’ (U+2028) –UTF-16 (decimal) 8,232 set kk to repCharByID(jj, 8232, "") of me log kk end tell end tell end tell –文字置換 on repCharByID(origText as string, targCharID as number, repChar as string) set targChar to string id targCharID set curDelim to AppleScript’s text item delimiters set AppleScript’s text item delimiters to targChar set tmpList to text items of origText set AppleScript’s text item delimiters to repChar set retText to tmpList as string set AppleScript’s text item delimiters to curDelim return retText end repCharByID |
More from my site
(Visited 46 times, 1 visits today)