« 外部ディスクで使用中が出た場合に対象プロセスを終了させる | トップページ | 市区町村番号取得 API利用版 HTML出力 »

ユーザー辞書作成支援スクリプト(追加辞書用テキストも作成するようにした)



ダウンロード - makeuserdict.zip




AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006##自分環境がos12なので2.8にしているだけです
007use AppleScript version "2.8"
008use framework "Foundation"
009use framework "AppKit"
010use scripting additions
011
012property refMe : a reference to current application
013
014#####################
015#設定項目
016# 名詞 動詞 等 品詞名をお好みで
017set strLangLind to ("普通名詞") as text
018
019##順番に4回処理
020set strSetPath to ("Data/ローマ数字1-100.tsv") as text
021#set strSetPath to ("Data/カタカナ濁音.tsv") as text
022#set strSetPath to ("Data/カタカナ半濁.tsv") as text
023#set strSetPath to ("Data/ひらがな濁音.tsv") as text
024#set strSetPath to ("Data/ひらがな半濁.tsv") as text
025#set strSetPath to ("Data/まる英字.tsv") as text
026
027#####################
028#PATH TO ME
029set aliasPathToMe to (path to me) as alias
030set strPathToMe to (POSIX path of aliasPathToMe) as text
031set ocidPathToMeStr to refMe's NSString's stringWithString:(strPathToMe)
032set ocidPathToMe to ocidPathToMeStr's stringByStandardizingPath()
033set ocidPathToMeURL to refMe's NSURL's fileURLWithPath:(ocidPathToMe)
034#読み込みファイル
035set ocidContainerDirPathURL to ocidPathToMeURL's URLByDeletingLastPathComponent()
036set ocidReadFilePathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:(strSetPath) isDirectory:(false)
037#保存パス PLIST保存先
038set ocidBaseFilePathURL to ocidReadFilePathURL's URLByDeletingPathExtension()
039set ocidFileName to ocidBaseFilePathURL's lastPathComponent()
040set ocidSavePlistDirPathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:("ユーザー辞書登録用PLIST") isDirectory:(true)
041#追加辞書用テキスト保存先
042set ocidSaveTextDirPathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:("追加辞書用テキスト") isDirectory:(true)
043#フォルダを作って
044set appFileManager to refMe's NSFileManager's defaultManager()
045set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
046ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions)
047set listDone to appFileManager's createDirectoryAtURL:(ocidSavePlistDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
048set listDone to appFileManager's createDirectoryAtURL:(ocidSaveTextDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
049#保存用のパスにしておく
050set ocidSaveBasePlistFilePathURL to ocidSavePlistDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(false)
051set ocidSaveBaseTextFilePathURL to ocidSaveTextDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(false)
052set ocidSavePlistPathURL to ocidSaveBasePlistFilePathURL's URLByAppendingPathExtension:("plist")
053set ocidSaveTextPathURL to ocidSaveBaseTextFilePathURL's URLByAppendingPathExtension:("csv.txt")
054
055#####################
056#NSDATA
057set ocidOption to (refMe's NSDataReadingMappedIfSafe)
058set listResponse to refMe's NSData's alloc()'s initWithContentsOfURL:(ocidReadFilePathURL) options:(ocidOption) |error| :(reference)
059if (item 2 of listResponse) = (missing value) then
060  set ocidReadData to (item 1 of listResponse)
061else if (item 2 of listResponse) ≠ (missing value) then
062  set strErrorNO to (item 2 of listResponse)'s code() as text
063  set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
064  refMe's NSLog("■:" & strErrorNO & strErrorMes)
065  return "エラーしました" & strErrorNO & strErrorMes
066end if
067#####################
068#NSSTRING
069set ocidReadString to refMe's NSString's alloc()'s initWithData:(ocidReadData) encoding:(refMe's NSUTF8StringEncoding)
070
071#####################
072#NSMutableArray's
073set ocidPlistArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
074
075#####################
076#NSMutableString
077set ocidCsvString to refMe's NSMutableString's alloc()'s initWithCapacity:(0)
078
079#####################
080#NSARRAY
081set ocidStringArray to ocidReadString's componentsSeparatedByString:("€n")
082#行テキストを順番に処理
083repeat with itemLineText in ocidStringArray
084  #行テキスト=タブ区切りなのでタブで前後にわける
085  set ocidTabArray to (itemLineText's componentsSeparatedByString:("€t"))
086  #####################
087  #NSMutableDictionary
088  set ocidPlistDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0))
089  #前が入力値
090  (ocidPlistDict's setValue:(ocidTabArray's firstObject()) forKey:("shortcut"))
091  #後が変換値
092  (ocidPlistDict's setValue:(ocidTabArray's lastObject()) forKey:("phrase"))
093  #出来たDICTをARRYにセット
094  (ocidPlistArray's addObject:(ocidPlistDict))
095  #####################
096  #NSMutableString
097  (ocidCsvString's appendString:(ocidTabArray's firstObject()))
098  (ocidCsvString's appendString:(","))
099  (ocidCsvString's appendString:(ocidTabArray's lastObject()))
100  (ocidCsvString's appendString:(","))
101  (ocidCsvString's appendString:(strLangLind))
102  (ocidCsvString's appendString:("€n"))
103  
104end repeat
105
106#####################
107#NSPropertyListSerialization
108set ocidFormat to (refMe's NSPropertyListBinaryFormat_v1_0)
109set listResponse to refMe's NSPropertyListSerialization's dataWithPropertyList:(ocidPlistArray) format:(ocidFormat) options:0  |error| :(reference)
110if (item 2 of listResponse) = (missing value) then
111  set ocidPlistData to (item 1 of listResponse)
112else if (item 2 of listResponse) ≠ (missing value) then
113  set strErrorNO to (item 2 of listResponse)'s code() as text
114  set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
115  refMe's NSLog("■:" & strErrorNO & strErrorMes)
116  return "エラーしました" & strErrorNO & strErrorMes
117end if
118
119
120##########################################
121####【4】保存  ここは上書き PLIST
122set ocidOption to (refMe's NSDataWritingAtomic)
123set listDone to ocidPlistData's writeToURL:(ocidSavePlistPathURL) options:(ocidOption) |error| :(reference)
124if (item 1 of listDone) is true then
125  log "正常処理 PLIST"
126else if (item 2 of listDone) ≠ (missing value) then
127  set strErrorNO to (item 2 of listDone)'s code() as text
128  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
129  refMe's NSLog("■:" & strErrorNO & strErrorMes)
130  return "エラーしました" & strErrorNO & strErrorMes
131end if
132
133##########################################
134####【4】保存  ここは上書き TEXT
135set ocidOption to (refMe's NSUTF8StringEncoding)
136set listDone to ocidCsvString's writeToURL:(ocidSaveTextPathURL) atomically:(true) encoding:(ocidOption) |error| :(reference)
137if (item 1 of listDone) is true then
138  return "正常処理 TEXT"
139else if (item 2 of listDone) ≠ (missing value) then
140  set strErrorNO to (item 2 of listDone)'s code() as text
141  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
142  refMe's NSLog("■:" & strErrorNO & strErrorMes)
143  return "エラーしました" & strErrorNO & strErrorMes
144end if
145
146
147
AppleScriptで生成しました

|

« 外部ディスクで使用中が出た場合に対象プロセスを終了させる | トップページ | 市区町村番号取得 API利用版 HTML出力 »

Text TSV」カテゴリの記事