« 2016年2月 | トップページ | 2016年4月 »

Fontとメモリ消費 その2

その1
https://force4u.cocolog-nifty.com/skywalker/2016/03/font-98d9.html


フォントのインストール数が与える影響を
AdobeのAiCS6で見てみます。

20160330_224852


こんな感じになりました

仮想メモリーはメモリーのイメージを『ハードディスク』に書き込みますので
実メモリほど高速ではありませんが、すてに展開済のデータですので
実ファイルを読み込みよりは良いといった程度です。
もちろん、ディスクアクセスが頻繁になると速度に影響します。

その1に続いて
フォントのインストールは程々にといった話しでした。
お願いしますよ<All

|

マイクロソフトのMacプロダクトって

漢字トークの頃から思っている事なんですが
ある意味では
マイクロソフトのMacプロダクトって
『Apple製品』より『Appleらしい製品』になっているような気がする

Website_image00280327_234628

|

Fontとメモリ消費

今時のMacを利用しているのでしたら
速度の問題は(もちろん全ての機器にはあてはまらないが)
『ハードディスクの速度』と『ネットワーク』
ディスクアクセス『読み取り』『書き込み』が『速度』のボトルネック
AdobeのCCなんかは電源ON時からの最初に起動時に
かなりの量のファイルを読み込み、メモリやキャッシュに書出します。
もちろん
SSDやフュージョンドライブ(まぁこれもSSDか)ならナニですが

ディスクアクセスとメモリー消費の両方で
大きく影響するのが『フォント』

Adobeのソフトが遅いと言う人に
少し古い機材でも、フォントはOS標準のみにして起動させると
ナルホドと納得してもらえます。
(まぁフォントは標準のみだと仕事になりませんが…苦)

AdobeのCCでは電源ON時からの最初に起動時には
全てのフォントを読み込みキャッシュします。
フォントの数が多ければ、それだけ起動に時間がかかります。
文字の字形サンプルを有効にしている場合は字形のキャッシュも作りますので
さらに時間がかかるわけです。

前置きが長くなりました
では
実験です。

まずはインストール済のフォント数121


Website_image00280327_194741


つづいて
ユーザーディレクトリに和文フォントを100書体追加


Website_image00280327_221523_2


和文100書体に欧文400書体追加

Website_image00280327_195617

実メモリーが
10.3 → 14.4 → 35.6 と肥大
それよりも
仮想メモリが
25→34→49と増えています。
これは『ディスクアクセス』を意味します。
また
仮想メモリの隣の3.11

Website_image00280327_1956171

これはCPUで演算した時間になります
フォントの数が多い分CPUも多く使っている事になります。

実メモリーを消費した上に仮想メモリへのディスクアクセスが頻繁になる

速度の面だけですが、良い事無いのです。

もちろん各種アプリケーションもフォントを読み込むのに時間がかかるし
字形で表示するフォントメニュー等も多くのリソースを必要になります。

かと言って、フォントが少ないと仕事にならん時もありますから
フォントのインストールは『ほどほど』にねっ といった話しでした。


余談ですが
ディスクアクセスだけで言えば
mds(スポットライト検索のインデックス)
アンチウィルスソフト
タイムマシーン 等が動いている時はディスクアクセスが多くなり
速度に影響が出たりします。

|

Wallander (刑事ヴァランダー)

851315

スウェーデン制作の
ミニシリーズ

タイトル
ITC Avant Garde Gothic Std

オープニングクレジットとタイトルが秀逸

Website_image00280321_194246

https://www.youtube.com/watch?v=uSbfo2l49Ec

販売用パッケージもアバンギャルド

Wallanderax24762539jpgd14a2ab525ef8


天気と同じく、暗い設定に暗い脚本で暗い演出
イギリスらしいと言えばイギリスらしいが…
ケネス・ブラナーの演技には圧倒されるが…
週末に見るもんでも無いかもしれない…


|

verify repair permissions アクセス権の検証・修復

Website_image00280319_13110

処理方法を選べるようにしてみた

(*
Verify-Repair-Permissions.scpt
アクセス権の検証・修正をコマンドラインで行ないます
10.11のディスクユーティリティ対応

20160319 初回作成
20160319 設定項目を追加
*)

---設定項目
#1の場合はアップルスクリプト内で処理
#2の場合はターミナルを呼び出しての処理
#ターミナル処理の場合のキャンセル時に応答が無くなる場合があるため
#1を推奨
set numApplication to 1 as number
#


tell application "Finder"
activate
----選択用のリストを定義
set listLngList to {"【検証】diskutil Verify(-10.10)", "【修復】diskutil Repair(-10.10)", "-------", "【検証】libexec Verify(10.11)", "【修復】libexec Repair(10.11)"} as list
----リスト表示のダイアログを出します
set thePermissionsAns to (choose from list listLngList with title "処理方法を選択" with prompt "アクセス権の検証・修復方法を選んでください" default items "【検証】libexec Verify(10.11)" without multiple selections allowed and empty selection allowed) as text
----エラーよけ
if thePermissionsAns is "-------" then
return
else if thePermissionsAns is "false" then
return
end if
end tell

---ダイアログの戻り値のリストをテキストに変換
set thePermissionsAns to thePermissionsAns as text
---処理の分岐
if thePermissionsAns is "【検証】diskutil Verify(-10.10)" then
set theCmdText to "sudo diskutil verifyPermissions /" as text
else if thePermissionsAns is "【修復】diskutil Repair(-10.10)" then
set theCmdText to "sudo diskutil repairPermissions /" as text
else if thePermissionsAns is "【検証】libexec Verify(10.11)" then
set theCmdText to "sudo /usr/libexec/repair_packages --verify --standard-pkgs --volume /" as text
else if thePermissionsAns is "【修復】libexec Repair(10.11)" then
set theCmdText to "sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /" as text
else
return
end if


if numApplication is 1 then
log "処理を開始します。処理が終わるまでしばらくお待ち下さい"
do shell script theCmdText with administrator privileges
log "処理が終了しました"
else if numApplication is 2 then

---ターミナルでコマンドを開く
tell application "Terminal" to launch

tell application "Terminal"
activate
do script theCmdText
end tell
else
return
end if


「Verify-Repair-Permissions.scpt.zip」をダウンロード

ソース
https://github.com/force4u/Verify-Repair-Permissions.scpt/blob/master/Verify-Repair-Permissions.scpt

|

Continuum コンティニアム CPS特捜班

Continuum連続体?
カナダ産のTVシリーズ

851315


AdobeのFutura Std

|

HART OF DIXIE(ハート・オブ・ディクシー ドクターハートの診療日記)

851315

似たような字形はあると思うけど
Texta かな
http://www.fonts.com/ja/font/latinotype/texta

これもやっぱり
本編は こんな感じだけど

Hart_of_dixie_intertitle


販売用のパッケージは

Hart_of_dixie_header_1


アメリカ南部のドラマ
ほとんどがセット撮影だけど
所どころロケもある、使い回しもある
主人公が間借りしている家

Plantation


主人公のオバの家

Website_image00280313_200115


南部らしい…フォレストガンプの生家と同じか…


|

iL Giovane Montalbano(ヤング・モンタルバーノ)

モンタルバーノの若い時代を描いたスピンオフ
本編の登場人物の『なぜ』も色々明かされているので楽しめる

851315

ITC Giovanni

実際のロゴはちょっと違うかな…

Website_image00280312_234320

|

[正規表現]Quotationクォテーションの置き換え

めったに無い英語系
慣れないので、戸惑う事が多い
『幸い』大量ページ物では無かったので、短時間で済んだが
用紙サイズはまだしも
禁則に関しては『何が正解』なんだか?状態で非常に難儀した

クオテーションの直しがあり
Jedit Xの複数置換で対応したが…
校正も初めての業者さんで、慣れないのもあり
ホント難儀した…

Website_image00280312_222409

上のような原稿を
下のように置き換えます。

こんな感じです。

Website_image00280312_222401

Jedit Xの置換ファイル
「ReplaceQuotation.txt」をダウンロード

実際には
赤字の部分のPRIME関連の置き換えは実施せずに
検索かけながらの手作業にした(結局は1カ所だけだった)

Website_image00280312_222812


---
一応お約束でAppleScriptも作ったが
ファイル数が多くないならJedit Xの置換の方が堅い



set theText to "I'm \"NO, the is the 'Right Way!'\" she replied. 6' 2\" tall"





set theDoneReplace to doReplace(theText, " ", " ") as text
set theDoneReplace to doReplace(theText, "\\", "") as text
-----Apostrophe
set theDoneReplace to doReplace(theDoneReplace, "′", "'") as text

-----DoubleQuotation
set theDoneReplace to doReplace(theDoneReplace, " \"", " “") as text
set theDoneReplace to doReplace(theDoneReplace, "\" ", "” ") as text
set theDoneReplace to doReplace(theDoneReplace, "\"", "\\\"") as text
set theDoneReplace to do shell script "echo \"" & theDoneReplace & "\" | awk 'gsub(/(\"$)/, \"”\") \"\"'"
set theDoneReplace to doReplace(theDoneReplace, "\"", "\\\"") as text
set theDoneReplace to do shell script "echo \"" & theDoneReplace & "\" | awk 'gsub(/(^\")/, \"“\") \"\"'"

-----SingleQuotation

set theDoneReplace to doReplace(theDoneReplace, " '", " ‘") as text
set theDoneReplace to doReplace(theDoneReplace, "' ", "’ ") as text
set theDoneReplace to doReplace(theDoneReplace, "“'", "“‘") as text
set theDoneReplace to doReplace(theDoneReplace, "'“", "‘“") as text
set theDoneReplace to doReplace(theDoneReplace, "”'", "”’") as text
set theDoneReplace to doReplace(theDoneReplace, "'”", "’”") as text
set theDoneReplace to doReplace(theDoneReplace, "\"", "\\\"") as text
set theDoneReplace to do shell script "echo \"" & theDoneReplace & "\"| awk 'gsub(/'\\''$/, \"’\" ) \"\"'"
set theDoneReplace to doReplace(theDoneReplace, "\"", "\\\"") as text
set theDoneReplace to do shell script "echo \"" & theDoneReplace & "\" | awk 'gsub(/^'\\''/, \"‘\" ) \"\"'"

-----Prime
set theDoneReplace to doReplace(theDoneReplace, "\"", "\\\"") as text
set theDoneReplace to do shell script "echo \"" & theDoneReplace & "\"| sed -e 's/\\([0-9]\\)\\(’\\)\\( \\)/\\1′\\3/g'"
set theDoneReplace to doReplace(theDoneReplace, "\"", "\\\"") as text
set theDoneReplace to do shell script "echo \"" & theDoneReplace & "\"| sed -e 's/\\([0-9]\\)\\(”\\)\\( \\)/\\1′\\3/g'"




tell application "TextEdit" to launch
tell application "TextEdit"
make new document with properties {text:theDoneReplace}
tell document 1
properties
set font to "Georgia"
set size to 48
end tell

end tell
tell application "TextEdit" to activate



--------////////文字の置き換えのサブルーチン
to doReplace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end doReplace

「ReplaceQuotation.scpt.zip」をダウンロード

|

PDFlib FontReporter

PDFlib FontReporter
PDFのフォント情報をレポート出力するプラグイン
無料
https://www.pdflib.com/download/free-software/fontreporter/

Website_image00280612_152404


|

Technical Note TN2035: ColorSync on Mac OS X


https://developer.apple.com/library/content/technotes/tn2035/_index.html

「TN2035.zipx」をダウンロード

「TN2035.webarchive.7z」をダウンロード

|

[AppleScripts]フォント・コレクションにフォントを追加する(その3)

少し治して
IPAを追加した

「addFontCollectionCopyright.scpt.zip」をダウンロード

ソース
https://github.com/force4u/addFontCollectionAdobe.scpt/blob/addFontCollectionCopyright.scpt/addFontCollectionCopyright.scpt


-------------------

同様の処理で言語を追加する物を作ってみたが
『言語』は、検索対象になっているので不要だった…

「addFontCollectionLang.scpt.zip」をダウンロード

ソース
https://github.com/force4u/addFontCollectionAdobe.scpt/blob/addFontCollectionLang.scpt/addFontCollectionLang.scpt


(*

addFontCollectionLang.scpt
20160308 初回作成 


フォントブックに登録されているフォントを調べて
フォントコレクションに登録します。

*)

---設定項目

set numWaitTime to 1.5 as number
#
#コレクションを作成してから、名称が確実に変更出来るための待ち時間
#コレクションが『名称未設定』で作られてしまう場合数値を大きく
#推奨1 名称未設定が出来る場合は2〜3に設定してください
------本処理ここから
---フォントブックを起動する
tell application "Font Book" to launch

tell application "Finder"
activate
---フルリスト
---set listLngList to {"アイスランド語", "アイルランド語", "アゼルバイジャン語", "アフリカーンス語", "アラビア語", "アルバニア語", "イタリア語", "インドネシア語", "ウェールズ語", "ウクライナ語", "ウズベク語", "ウルドゥー語", "エストニア語", "エスペラント語", "オランダ語", "オロモ語", "カザフ語", "カタロニア語", "ガリシア語", "ギリシャ語", "グリーンランド語", "クロアチア語", "コーンウォール語", "スウェーデン語", "スペイン語", "スロバキア語", "スロベニア語", "スワヒリ語", "セルビア語", "ソマリ語", "チェコ語", "デンマーク語", "ドイツ語", "トルコ語", "ノルウェー語 (ニーノシュク)", "ノルウェー語 (ブークモール)", "バスク語", "ハワイ語", "ハンガリー語", "フィンランド語", "フェロー語", "フランス語", "ブルガリア語", "ベトナム語", "ヘブライ語", "ベラルーシ語", "ポーランド語", "ポルトガル語", "マケドニア語", "マルタ語", "ラトビア語", "リトアニア語", "ロシア語", "英語", "韓国語", "中国語", "中国語 (繁体字)", "中国語 (簡体字)"} as list
---自分用リスト
set listLngList to {"アラビア語", "イタリア語", "インドネシア語", "オランダ語", "ギリシャ語", "スウェーデン語", "スペイン語", "スワヒリ語", "チェコ語", "デンマーク語", "ドイツ語", "トルコ語", "ハンガリー語", "フランス語", "ベトナム語", "ヘブライ語", "ポーランド語", "ポルトガル語", "ロシア語", "英語", "韓国語", "中国語", "中国語 (繁体字)", "中国語 (簡体字)"} as list

set theLangAns to (choose from list listLngList with title "言語選択" with prompt "フォントコレクションを作成する言語を選択してください" default items "日本語" without multiple selections allowed and empty selection allowed) as text
end tell
---フォントブック内での処理
tell application "Font Book"
---前面に
activate
---Adobeの名前のフォントコレクションの有無を調べます
set boolFontCollection to exists of font collection theLangAns
---もしAdobeのコレクションが無い場合
if boolFontCollection = false then
try
---新しいコレクションを作成
set objFontCollection to make new font collection
end try
---おまじない
delay numWaitTime
---作ったコレクション
tell objFontCollection
---名前を変更
set name to theLangAns
end tell
---おまじない
delay numWaitTime
tell font collection theLangAns
---ローカライズ用?
set displayed name to theLangAns
end tell
end if
-----全てのタイプフェイスを取得 リストに格納
set listAllTypeFaces to get every typeface as list
---ファイプフェイスIDの数だけ繰り返す
repeat with theFont in listAllTypeFaces
---タイプフェイスのプロパティを取得
set listFontProperties to properties of theFont
---プロパティの追加情報部を取得
set listAdditionalnfo to typeface additional info of listFontProperties
---エラーよけの初期化
set listFBLanguages to ""
---追加情報から言語情報を取得
try
set listFBLanguages to FBFaceLanguages of listAdditionalnfo
end try
---もしも、言語情報に指定の文字があったら
if listFBLanguages contains theLangAns then
---コレクションに追加する
add theFont to font collection theLangAns
end if
end repeat
end tell

|

Don Matteo(マッテオ神父の事件簿)

Don_matteo_8ultima_puntatarai1

実際のフォントはこんな感じです
たぶんGill Sansかな〜と

それにしても
毎回…毎回…ゲストが『超美人ばかり』さすがイタ〜リア
(つーか、そんなキャスティングで良いのか…)
日本ではシーズン7から始まりましたが
現地イタリアではシーズン10と人気シリーズ

0306214736dvbtrai1

2話目に出た"Laura Glavan”は可愛かった…
アゴ割れが気になるが…(たしか…優性遺伝だっけか?)

しかし、検死官まで超美人なのは、ドラマとしてどうなんだ!と…

|

Dreamgirls

851315

ロゴは
Futura Std Light

台詞部は
ABeeZee

実際のロゴはこんな感じ


Website_image00280306_204840

なんで?パフュームか?って言うと…好きだから…
このシーンとちょっと似てるなと思って
色が

Dreamgirlsposter


|

[AppleScripts]フォント・コレクションにフォントを追加する(その2)

[AppleScripts]フォント・コレクションにフォントを追加する
https://force4u.cocolog-nifty.com/skywalker/2016/03/applescripts-4c.html
変更版

今の業務先でも利用できるように
少し便利にしてみた。


Website_image00280306_190614

欧文 和文に加えて
許諾部分を調べて、ロゴ等に使いやすい
『オープン』なライセンスのものを
表示出来るようにしてみた


Website_image00280306_191439

Website_image00280306_191504


(*

addFontCollection.scpt
20160305 初回作成 
20160304 displayed nameの処理を修正
20160306 Apache と SIL の処理を追加
20160306 addFontCollection.scptに名称変更
20160306 待ち時間を変更出来るように変更
フォントブックに登録されているフォントを調べて
フォントコレクションに登録します。

*)

---設定項目

set numWaitTime to 1.5 as number
#
#コレクションを作成してから、名称が確実に変更出来るための待ち時間
#コレクションが『名称未設定』で作られてしまう場合数値を大きく
#推奨1 名称未設定が出来る場合は2〜3に設定してください
------本処理ここから
---フォントブックを起動する
tell application "Font Book" to launch


tell application "Finder"
activate
----選択用のリストを定義
set listLngList to {"Adobe", "Apple", "Bitstream", "Bureau", "DynaLab", "Google", "ITC", "Linotype", "Microsoft", "Monotype", "ParaType", "URW", "Esselte Letraset", "-------", "Morisawa", "Fontworks", "DynaComware", "Iwata", "TypeBank", "スクリーン", "-------", "Apache", "SIL"} as list
----リスト表示のダイアログを出します
set theLangAns to (choose from list listLngList with title "言語選択" with prompt "フォントコレクションを作成するファウンダリを選択してください" default items "日本語" without multiple selections allowed and empty selection allowed) as text
----エラーよけ
if theLangAns is "-------" then
return
else if theLangAns is "false" then
return
end if
end tell



---フォントブック内での処理
tell application "Font Book"
---前面に
activate
---Adobeの名前のフォントコレクションの有無を調べます
set boolFontCollection to exists of font collection theLangAns
---もしAdobeのコレクションが無い場合
if boolFontCollection = false then
try
---新しいコレクションを作成
set objFontCollection to make new font collection
end try
---おまじないの1秒
delay numWaitTime
---作ったコレクション
tell objFontCollection
---名前を変更
set name to theLangAns
end tell
---おまじないの1秒
delay numWaitTime
tell font collection theLangAns
---ローカライズ用?
set displayed name to theLangAns
end tell
end if
-----全てのタイプフェイスを取得 リストに格納
set listAllTypeFaces to get every typeface as list
---ファイプフェイスIDの数だけ繰り返す
repeat with theFont in listAllTypeFaces
---タイプフェイスのプロパティを取得
set listFontProperties to properties of theFont
---プロパティの追加情報部を取得
set listAdditionalnfo to typeface additional info of listFontProperties
---エラーよけの初期化
set FBFaceCopyrightName to ""
---追加情報からコピーライト情報を取得
try
set listFBFaceCopyrightName to FBFaceCopyrightName of listAdditionalnfo
end try
----許諾用のリストの制御 アパッチライセンス
if theLangAns is "Apache" then
try
set listFBFaceCopyrightName to FBFaceLicenseName of listAdditionalnfo
end try
----許諾用のリストの制御 オープンフォントライセンス
else if theLangAns is "SIL" then
try
set listFBFaceCopyrightName to FBFaceLicenseName of listAdditionalnfo
end try
end if
---もしも、コピーライト情報をしらべて
if listFBFaceCopyrightName contains theLangAns then
---コレクションに追加する
add theFont to font collection theLangAns
---ITCの場合だけロングネームの場合があるので別処理
else if theLangAns contains "ITC" then
if listFBFaceCopyrightName contains "International Typeface Corporation" then
---コレクションに追加する
add theFont to font collection theLangAns
end if
end if
end repeat
end tell


「addFontCollectionCopyright.scpt.zip」をダウンロード

ソースはこちら
https://github.com/force4u/addFontCollectionAdobe.scpt/tree/addFontCollection.scpt

|

[AppleScripts]フォント・コレクションにフォントを追加する

AppleScriptを使ったフォントコレクションの操作
OSX10.6で確認しているので
最新のOSでは動作が怪しい

1:フォントコレクションを新規作成する
2:コレクションの名前をAdobeにする
3:著作情報にAdobeの文字があるフォントをコレクションに追加する

Website_image00280305_220344

実際の動作をYouTubeでどうぞ

20160306修正版


(*

addFontCollectionAdobe.scpt
20160305 初回作成 
201603004 displayed nameの処理を修正

フォントブックに登録されているフォントを調べて
コピーライトがAdobeの製品を
フォントコレクションに登録します。

*)



---フォントブックを起動する
tell application "Font Book" to launch

---フォントブック内での処理
tell application "Font Book"
---前面に
activate
---Adobeの名前のフォントコレクションの有無を調べます
set boolChFontCollection to exists of font collection "Adobe"
---もしAdobeのコレクションが無い場合
if boolChFontCollection = false then
try
---新しいコレクションを作成
set objFontCollectionAdobe to make new font collection
end try
---おまじないの1秒
delay 1
---作ったコレクション
tell objFontCollectionAdobe
---名前を変更
set name to "Adobe"
end tell
---おまじないの1秒
delay 1
tell font collection "Adobe"
---ローカライズ用?
set displayed name to "Adobe"
end tell
end if
-----全てのタイプフェイスを取得 リストに格納
set listAllTypeFaces to get every typeface as list
---ファイプフェイスIDの数だけ繰り返す
repeat with theFont in listAllTypeFaces
---タイプフェイスのプロパティを取得
set listFontProperties to properties of theFont
---プロパティの追加情報部を取得
set listAdditionalnfo to typeface additional info of listFontProperties
---エラーよけの初期化
set FBFaceCopyrightName to ""
---追加情報からコピーライト情報を取得
try
set lisFBFaceCopyrightName to FBFaceCopyrightName of listAdditionalnfo
end try
---もしも、コピーライト情報にAdobeの文字があったら
if lisFBFaceCopyrightName contains "Adobe" then
---Adobeのコレクションに追加する
add theFont to font collection "Adobe"
end if
end repeat
end tell


「addFontCollectionAdobe.scpt.zip」をダウンロード


------
余談
先日Adobeの制限フォントについて書きました
制限フォント
http://www.adobe.com/jp/products/type/font-licensing/restricted-fonts.html


許諾関係の文書って煙にまくような文章が多いのですが
Adobeのフォントについては
比較的わかりやすい文書になっている

Website_image00280305_222558

デザイナーさんが誤解しがちなのが
1:ソフトウェアとしての『フォント』と『フォントファイル』
2:フォントを利用して制作された2次制作物(ソフトウェアとしてのフォント以外)
この違い
Adobeのフォントについては、比較的安心して利用可能
ですが
TypeKitは別かな…
https://helpx.adobe.com/jp/typekit/using/font-licensing.html

TypeKitの場合は『そのフォントにアクセス可能な契約(クリエイティブクラウド契約等)が必須
その辺りを回避するために、ロゴやレターヘッド等長期に渡って使われる場合は
必要なフォントだけでも単体購入して
許諾を永続化させておくのと、クライアントが安心してくれる場合が多い
なぜか?
『厳密に』言うと、クライアントがロゴ等に使われたフォントを利用するために
クライアントにクリエイティブクラウド契約が必要になる『場合』があるからです。
↑(そこまで気にしなくても大丈夫な場合がホトンドですが…)
クライアントが大手の場合
この辺りはクライアントの法務部さんあたりとの話しになる場合もあるので
早めの段階で、「決めておく」事が吉

 


|

[AppleScript]AppleScriptでテキストに行番号を発生させる(その2)

ゼロサプレスの処理を変更した
桁数を文字列として文字数を数える事で取得し
処理する桁数での制限を無くした


(*
add_line_no.scpt
20160303 初回作成 
20160305 ゼロサプレス処理変更
テキストデータに行番号を付加してその後にタブを挿入し
タブ区切りテキスト形式に変換した出力を
テキストエディタに表示します。
JeditXでテキストに行番号を発生させる
http://mottainaidtp.seesaa.net/article/434495744.html
アップルスクリプト版
*)


----設定項目
(*
1ならゼロサプレス有り
ソレ以外ならゼロサプレス無し
*)
property preZeroSup : 1


------------------------------------ ダブルクリックの始まり
on run
------------プロンプトの文言改行が使えます\nを入れます
set theWithPrompt to "テキストデーターにラインNO(行番号+タブ)を挿入します"
------------ファイル選択ダイアログのデフォルトのディレクトリ
tell application "Finder"
---set theDefaultLocation to (path to desktop from user domain) as alias
set theDefaultLocation to (container of (path to me)) as alias
end tell
------------Uniform Type Identifier指定
set theFileTypeList to "public.plain-text,com.apple.traditional-mac-plain-text" as text
------------のファイルタイプをリスト形式に整形する
set AppleScript's text item delimiters to {","}
set theFileTypeList to every text item of theFileTypeList
------------ダイアログを出して選択されたファイルは「open」に渡す
open (choose file default location theDefaultLocation ¬
with prompt theWithPrompt ¬
of type theFileTypeList ¬
invisibles true ¬
without multiple selections allowed and showing package contents)
end run


on open DropObj
---ファイルのエイリアスを取得
set theFileAlias to DropObj as alias
------選択したファイルのUNIXパスを取得
set theUnixPass to POSIX path of theFileAlias as text
-----ファイルを読み込む
set theData to (do shell script "cat '" & theUnixPass & "'") as «class utf8»
---リスト用の区切り文字
set AppleScript's text item delimiters to {"\r"}
---読み込んだデータをリスト形式で格納
set retListVal to (every text item of theData) as list
---行毎データ初期化
set theDataListLine to "" as text
---アウトプットデータ初期化
set theOutPut to "" as text
-----読み込んだテキストの行数を数える
set numListLine to count of retListVal
-----行数カウンタ初期化
set numLine to 1 as number
----繰り返しの始まり
repeat numListLine times
---1つ読み込む
set theDataListLine to (item numLine of retListVal) as text
---ゼロサプレスの有無
if preZeroSup is 1 then
----ゼロサプレスあり
set theZeroSupLineNo to doZeroSuppress(numLine, numListLine)
else
----ゼロサプレス無し
set theZeroSupLineNo to numLine as text
end if
---出力テキスト整形
set theOutPut to theOutPut & theZeroSupLineNo & "\t" & theDataListLine & "\r"
---カウントアップ
set numLine to (numLine + 1) as number
---リピートのおわり
end repeat
---結果をテキストエディタで開く
tell application "TextEdit" to launch
tell application "TextEdit"
make new document with properties {text:theOutPut}
end tell
tell application "TextEdit" to activate
end open




----ゼロサプレスのサブルーチン
#nに処理する値
#totalnoに最大数
#ゼロサプレス処理をします
to doZeroSuppress(n, totalno)
---戻り値の初期化
set theSupZero to "" as text
---最大数の桁数を数える
set theCntTotal to (count of (totalno as text)) as number
---処理する値の桁数を数える
set theCntN to (count of (n as text)) as number
---差分を求める
set numZeoCnt to ((theCntTotal) - (theCntN)) as number
---桁数の差だけ処理する
repeat numZeoCnt times
---戻り値にゼロを追加
set theSupZero to (theSupZero & "0") as text
end repeat
---戻り値を返す
return (theSupZero & n) as text
end doZeroSuppress

「minimum20160305.zip」をダウンロード

|

[AppleScript]AppleScriptでテキストに行番号を発生させる

JeditXでテキストに行番号を発生させる
http://mottainaidtp.seesaa.net/article/434495744.html

反応

ただやってもナニなので
行番号にゼロサプレス処理を付加出来るようにした


(*
add_line_no.scpt
テキストデータに行番号を付加してその後にタブを挿入し
タブ区切りテキスト形式に変換した出力を
テキストエディタに表示します。
JeditXでテキストに行番号を発生させる
http://mottainaidtp.seesaa.net/article/434495744.html
アップルスクリプト版
*)


----設定項目
(*
1ならゼロサプレス有り
ソレ以外ならゼロサプレス無し
*)
property preZeroSup : 2


------------------------------------ ダブルクリックの始まり
on run
------------プロンプトの文言改行が使えます\nを入れます
set theWithPrompt to "テキストデーターにラインNO(行番号+タブ)を挿入します"
------------ファイル選択ダイアログのデフォルトのディレクトリ
tell application "Finder"
---set theDefaultLocation to (path to desktop from user domain) as alias
set theDefaultLocation to (container of (path to me)) as alias
end tell
------------Uniform Type Identifier指定
set theFileTypeList to "public.plain-text,com.apple.traditional-mac-plain-text" as text
------------のファイルタイプをリスト形式に整形する
set AppleScript's text item delimiters to {","}
set theFileTypeList to every text item of theFileTypeList
------------ダイアログを出して選択されたファイルは「open」に渡す
open (choose file default location theDefaultLocation ¬
with prompt theWithPrompt ¬
of type theFileTypeList ¬
invisibles true ¬
without multiple selections allowed and showing package contents)
end run


on open DropObj
---ファイルのエイリアスを取得
set theFileAlias to DropObj as alias
------選択したファイルのUNIXパスを取得
set theUnixPass to POSIX path of theFileAlias as text
-----ファイルを読み込む
set theData to (do shell script "cat '" & theUnixPass & "'") as «class utf8»
---リスト用の区切り文字
set AppleScript's text item delimiters to {"\r"}
---読み込んだデータをリスト形式で格納
set retListVal to (every text item of theData) as list
---行毎データ初期化
set theDataListLine to "" as text
---アウトプットデータ初期化
set theOutPut to "" as text
-----読み込んだテキストの行数を数える
set numListLine to count of retListVal
-----行数カウンタ初期化
set numLine to 1 as number
----繰り返しの始まり
repeat numListLine times
---1つ読み込む
set theDataListLine to (item numLine of retListVal) as text
---ゼロサプレスの有無
if preZeroSup is 1 then
----ゼロサプレスあり
set theZeroSupLineNo to doZeroSuppress(numLine, numListLine)
else
----ゼロサプレス無し
set theZeroSupLineNo to numLine as text
end if
---出力テキスト整形
set theOutPut to theOutPut & theZeroSupLineNo & "\t" & theDataListLine & "\r"
---カウントアップ
set numLine to (numLine + 1) as number
---リピートのおわり
end repeat
---結果をテキストエディタで開く
tell application "TextEdit" to launch
tell application "TextEdit"
make new document with properties {text:theOutPut}
end tell
tell application "TextEdit" to activate
end open




----ゼロサプレスのサブルーチン
to doZeroSuppress(n, totalno)
if totalno < 10 then
return n as text
else if totalno < 100 then
if n < 10 then
return "0" & n
else
return n as text
end if
else if totalno < 1000 then
if n < 10 then
return "00" & n
else if n < 100 then
return "0" & n
else
return n as text
end if
else if totalno < 10000 then
if n < 10 then
return "000" & n
else if n < 100 then
return "00" & n
else if n < 1000 then
return "0" & n
else
return n as text
end if
end if
end doZeroSuppress


「minimum20160303.zip」をダウンロード

ソースはこちらに保存
https://github.com/force4u/add_line_no.scpt

|

【過去記事フォロー】[YouTube]YouTubeのサムネイル画像(default.webp mqdefault.webp hqdefault.webp sddefault.webp maxresdefault.webp)

こちらの記事
[YouTube]YouTubeのサムネイル画像(default.jpg mqdefault.jpg hqdefault.jpg sddefault.jpg maxresdefault.jpg)

追記

----
サムネイル画像には
jpg以外にwebpLINKがあります

基本は同じ

Website_image00280302_04043


120x90
http://i.ytimg.com/vi_webp/XRsWJ_k6K18/default.webp
320x180
http://i.ytimg.com/vi_webp/XRsWJ_k6K18/mqdefault.webp
480x360
http://i.ytimg.com/vi_webp/XRsWJ_k6K18/hqdefault.webp
640x480
http://i.ytimg.com/vi_webp/XRsWJ_k6K18/sddefault.webp
1280x720 又は 1048x576
http://i.ytimg.com/vi_webp/XRsWJ_k6K18/maxresdefault.webp

https:でも可

webp対応のブラウザなら
通常のimgタグでOK
default.webp



ここに画像が出ているなら
WEBP対応のブラウザって事になります


|

GOTHAM S2E1 「大義のために」/ DAMNED IF YOU DO...

851315


タイトルは
Arno Pro Subhead

台詞は
Adobe Devanagari

父からの手紙
Dear Bruce, these last weeks I begin to feel very mortal, which prompts this note to you. Perhaps I'm being paranoid. I hope so. In any case, if you're reading this, then I'm dead, and you figured out that the entry code is... BRUCE. I'm sorry I had to hide this part of my life from you, because this place only exists because of you. Becoming a father made me want to be a better man, and I started asking hard questions about the family business. So here we are. As I write this, you're 12 and a fine, good-hearted boy. So I'm sure you'll be a fine, good-hearted man. But that's all I know. I don't know what happened to me or your mother, or how life has turned out for you. I don't even know how old you are. So I'll resist giving you much fatherly advice. Only this: You can't have both happiness and the truth. "You have to choose. I beg of you, my son, please choose happiness. Unless... Unless you feel a calling. A true calling.


最後の部分
Unless you feel a calling. A true calling.
TVの訳では
『使命を感じたなら、心の声に従え』といったような訳だった
(良い訳です)

----
余談
Adobe Devanagariは違いますが
Adobeのフォントの一部で
Adobeのソフト以外で使っちゃダメヨな許諾内容のフォントがあります
制限フォント
http://www.adobe.com/jp/products/type/font-licensing/restricted-fonts.html

アラビア、ヘブライ、中国語、タイ語などが含まれています
オフィスアプリやiWork(今でも呼んでる?)等では使えないフォントがありますので
留意しましょう
MyriadProなんて使っちゃいそうですよね…

|

« 2016年2月 | トップページ | 2016年4月 »