SSブログ

見た目は同じなのに違うんですね。 [AppleScript辞書はつくれるか?]

Applescriptで複数行で表現される文章を作る際。次の行へ移動するには『改行』が使われます。
何を今更?と思うでしょう。
Applescriptで改行という予約語には"return"という単語が用意されています。


"abc" & return & "123"

 

結果は

(*abc

123*)


※ちなみに(*と*)は、結果を表示する時の意味のあるおまけなので無視してほしい。


もう一つ、Applescriptでは文字列に関してだけできる便利な記入方法で、直接改行を入力できるという便利な方法があります。


"abc

123"       

 

結果はおなじく

(*abc

123*)

 

 

スクリーンショット 2015-07-17 23.14.20.png

順番が変わってるけど

ほら、おなじですよね?

 

でもおかしな現象があるのです。

この時の、text_Atext_Bは、確かに同じに見えるのですが

判定を行うと

 

スクリーンショット 2015-07-17 23.16.10.png

 

結果:

fales


異なってるよと出ます。

なぜ?

 

不思議なので、キャラクターのID番号を参照してみた。

 

スクリーンショット 2015-07-18 0.15.01.png

 

なぜか改行の部分のIDが違っています。

 

ちなみにIDの10(16進数で0A)と13(16進数で0D)を確認してみました。

 

mac_roman_ascii.png

 

ID 10はLF、ID 13はCR

 

そうですか、LF(ラインフィード)とCR(キャレッジリターン)という別な改行コードが使われていたんですか。

それは違ってて当然です。

でも、何故こんなことが起きるのでしょう?

 

ウィキを見てみました。

多くのシステムでは、改行コードを1つまたは連続する2つの特殊文字で表している。

ASCII文字コードに基づくシステムでは、CR(復帰、0x0D)、LF(改行、0x0A)、またはCR+LFで表している。

LF:    UNIXやUnix系のシステム。Linux、AIX、Xenix、Mac OS X、BeOS、Amiga、RISC OSなど。

CR+LF: CP/M、MP/M、MS-DOS、OS/2、Microsoft Windows。

CR:    コモドールによるシステム、Apple IIファミリ、Mac OS(バージョン9まで)、OS-9。

 

直接入力するとLF、予約語のreturnを使えばCR。

予約語は昔のシステムOS9以前の改行方式で、

直接だと、新しいシステムのOS Xの改行が使われてしまうんですね。

どうりで、うまく比較できない訳だ。

 

一つ賢くなりました。

 


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。