AppleScriptでの文字列操作
知ってるべき人はとっくに知ってる
知らない人はいまさら知らなくてもいい話
AS違いだけどひさびさOS9で
AppleScriptなんて触ることがあったのでメモ
AppleScriptの文字列のクラスには
ActionScriptでいうところの
replaceとかsplitとかindexOfとかがありません
やっぱり今もないみたいです
相変わらず
starts with ~ = ~で始まるか調べる
ends with ~ = ~で終わるか調べる
contains ~ = ~を含むか調べる
とかしかないみたいです
そんなわけでAppleScriptでは文字列の検索置換する時は
文字列を配列にするときには特定の文字列を
区切り文字にして配列に変換するというのを利用して
1、元の区切り文字を記憶
2、検索したい文字列を区切り文字にする
3、配列にする
4、置換したい文字列を区切り文字にする
5、文字列にもどす
6、区切り文字を元に戻す
っていうステップを踏む事になります
まいどまいど必要になるたびにそういう処理描いてちゃ面倒なんで
とりあえず、split、replace、indexOfに対応する関数とついでに
マッチした場所のインデックスの配列を返す関数なんか用意しとけば
当面は困る事はないかなと思います、多分
こいつをどっか呼び出しやすいとこに置いといて
文字列いじるスクリプト描く時は
load scriptしてやるとかすれば便利かなと
RegExpクラスはないから正則表現はあきらめ
OSXでAppleScript使ってる人なんているのかな?
知らない人はいまさら知らなくてもいい話
AS違いだけどひさびさOS9で
AppleScriptなんて触ることがあったのでメモ
AppleScriptの文字列のクラスには
ActionScriptでいうところの
replaceとかsplitとかindexOfとかがありません
やっぱり今もないみたいです
相変わらず
starts with ~ = ~で始まるか調べる
ends with ~ = ~で終わるか調べる
contains ~ = ~を含むか調べる
とかしかないみたいです
そんなわけでAppleScriptでは文字列の検索置換する時は
文字列を配列にするときには特定の文字列を
区切り文字にして配列に変換するというのを利用して
1、元の区切り文字を記憶
2、検索したい文字列を区切り文字にする
3、配列にする
4、置換したい文字列を区切り文字にする
5、文字列にもどす
6、区切り文字を元に戻す
っていうステップを踏む事になります
まいどまいど必要になるたびにそういう処理描いてちゃ面倒なんで
とりあえず、split、replace、indexOfに対応する関数とついでに
マッチした場所のインデックスの配列を返す関数なんか用意しとけば
当面は困る事はないかなと思います、多分
--文字列検索置換の関数
--split(文字列、区切り文字):文字列の配列
--rep(文字列、検索文字、置換文字):文字列
--indexOf(文字列、検索文字):数値
--allIndexOf(文字列、検索文字):数値の配列
on split(str, delim)
local orgDelim, rtn
set orgDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to {delim}
set rtn to every text item of str
set AppleScript's text item delimiters to orgDelim
return rtn
end split
on rep(orgStr, tgtStr, newStr)
local orgDelim, rtn
set orgDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to {tgtStr}
set rtn to every text item of orgStr
set AppleScript's text item delimiters to {newStr}
set rtn to rtn as string
set AppleScript's text item delimiters to orgDelim
return rtn
end rep
on indexOf(str, tgtStr)
local orgDelim, rtn
set orgDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to {tgtStr}
set rtn to every text item of str
if ((count of rtn) > 1) then
set rtn to count of item 1 of rtn
else
set rtn to -1
end if
set AppleScript's text item delimiters to orgDelim
return rtn
end indexOf
on allIndexOf(str, tgtStr)
local orgDelim, temp, crr, rtn
set orgDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to {tgtStr}
set temp to every text item of str
set rtn to {}
set crr to 0
repeat with iii from 1 to (count of temp) - 1
set crr to crr + (count of item iii of temp)
set rtn to rtn & {crr}
set crr to crr + (count of tgtStr)
end repeat
set AppleScript's text item delimiters to orgDelim
return rtn
end allIndexOf
こいつをどっか呼び出しやすいとこに置いといて
文字列いじるスクリプト描く時は
load scriptしてやるとかすれば便利かなと
RegExpクラスはないから正則表現はあきらめ
OSXでAppleScript使ってる人なんているのかな?
SVGが来るんじゃない?
EPUBは画像としてjpegとgifとsvgをサポート
個人的にこのsvgってのは
既存の書籍を電子書籍化するときに
結構有力な選択肢なんじゃないかと思ってます
その理由は
(1)XMLだからテキストデータを保持できる
(2)レイアウトが保持される
(3)Illustraterで簡単にjavascriptをつけて書き出せる
構造化されてないコンテンツを全部タグつけて
構造化し直すとかやってられないですよね
本の印刷のデータって印刷でレイアウトが
ちゃんとなるようなデータではあるけど
電子文書として情報が整理されてるワケじゃなし
InDesignのEPUB書き出しは
レイアウトソフトがレイアウトなしの
データ書き出してなにするんだってカンジですし
そもそも本のレイアウトは非リキッドなレイアウトとして
考えられてるんだから崩れてもらっちゃこまる
かといってjpegで書き出してテキストデータ
なしにしちゃうとかすると検索できなくて不便
既存の本のデータをEPUBにしたいけど
テキストデータを保持してかつレイアウトも保持したい
そんな都合のいいデータ形式なんて…
あるじゃん、SVG、ってなモンです
これからもいろいろわいて出てくるだろう
EPUBビューワがSVGのどこまでを
サポートしてくれるかにもよりますが
WEB方面からではなく紙媒体方面から
電子書籍に参入するならSVGって
かなりありなんじゃないかなと思った次第です
ついでにイラレのSVGインタラクティブのウインド

とりあえずevtにイベントターゲットが入るので
それを渡しとけば間違いないでしょう
個人的にこのsvgってのは
既存の書籍を電子書籍化するときに
結構有力な選択肢なんじゃないかと思ってます
その理由は
(1)XMLだからテキストデータを保持できる
(2)レイアウトが保持される
(3)Illustraterで簡単にjavascriptをつけて書き出せる
構造化されてないコンテンツを全部タグつけて
構造化し直すとかやってられないですよね
本の印刷のデータって印刷でレイアウトが
ちゃんとなるようなデータではあるけど
電子文書として情報が整理されてるワケじゃなし
InDesignのEPUB書き出しは
レイアウトソフトがレイアウトなしの
データ書き出してなにするんだってカンジですし
そもそも本のレイアウトは非リキッドなレイアウトとして
考えられてるんだから崩れてもらっちゃこまる
かといってjpegで書き出してテキストデータ
なしにしちゃうとかすると検索できなくて不便
既存の本のデータをEPUBにしたいけど
テキストデータを保持してかつレイアウトも保持したい
そんな都合のいいデータ形式なんて…
あるじゃん、SVG、ってなモンです
これからもいろいろわいて出てくるだろう
EPUBビューワがSVGのどこまでを
サポートしてくれるかにもよりますが
WEB方面からではなく紙媒体方面から
電子書籍に参入するならSVGって
かなりありなんじゃないかなと思った次第です
ついでにイラレのSVGインタラクティブのウインド

とりあえずevtにイベントターゲットが入るので
それを渡しとけば間違いないでしょう
SVGっていいじゃない
まあ今頃EPUBについてお勉強しようと
Sigilとか落として、HTMLコピペして
おぉできたできたとか楽しんでたワケなんですが
そんななかで不遇のSVGがEPUBのおかげで
やっと日の目を見る?みたいな話がでてきて
svgのことをちょっと調べてみたわけです
svgが実は10年前からweb標準勧告されてる
xmlなファイルだなんてはじめて知りました
まさかテキストエディタで開けたなんて…
実のところsvgのことをAdobeが作った
プラグインで表示するFlashのようなもの
とか思い込んでいままでやってきました
それがスクリプトを使って内容を動かしたり
サーバサイドで動的に生成もできてしまう
これ以上ないくらいWEB向けな画像形式であったとは…
仕事柄svgなんて触る機会がなかったってのもあるかも知りませんが
なんでこんな便利なファイル形式が全然一般化してないのか
逆に不思議に思ってしまいました
おもにIEのせいだと思います
W3CがWEB標準勧告してるのに最新バージョンでも
標準対応しないってどういう…
Sigilとか落として、HTMLコピペして
おぉできたできたとか楽しんでたワケなんですが
そんななかで不遇のSVGがEPUBのおかげで
やっと日の目を見る?みたいな話がでてきて
svgのことをちょっと調べてみたわけです
svgが実は10年前からweb標準勧告されてる
xmlなファイルだなんてはじめて知りました
まさかテキストエディタで開けたなんて…
実のところsvgのことをAdobeが作った
プラグインで表示するFlashのようなもの
とか思い込んでいままでやってきました
それがスクリプトを使って内容を動かしたり
サーバサイドで動的に生成もできてしまう
これ以上ないくらいWEB向けな画像形式であったとは…
仕事柄svgなんて触る機会がなかったってのもあるかも知りませんが
なんでこんな便利なファイル形式が全然一般化してないのか
逆に不思議に思ってしまいました
おもにIEのせいだと思います
W3CがWEB標準勧告してるのに最新バージョンでも
標準対応しないってどういう…