置換ターゲット文字が複数存在する場合に、先頭からn個目までの置換ターゲットを個別に文字指定して置換するAppleScriptです。
▲行頭のスペースは削除(ヌル文字列に置換)、2個目のスペースはtabに置換したい
▲置換ずみ
Cocoaの機能を使って(作りためたサブルーチンを流用して)書いてみたら、トンでもなく長くなってしまったので、あらためてOLD Style AppleScriptの機能範囲だけでコンパクトに書き直したものです。
このぐらいの(↑)のどかな分量のデータに対してシーケンシャルに(文字を1文字ずつ取り出して比較&置換)処理を行うものなので、高速化などは一切考慮していません。大規模データにはまったく別のアプローチを行うことをおすすめします。
AppleScript名:先頭からn個目までのターゲット文字を個別指定した文字に置換 |
— Created 2018-07-23 by Takaaki Naganoya — 2018 Piyomaru Software — This script runs on OS X 10.10 or later use scripting additions use framework "Foundation" set origStr to " aaaaa bbbb cccccc dddddd" set repTarget to " " set repList to {"", tab} –1個めのスペースは削除、2個めのスペースはtabに置換 set rStr to repLimitedOrderStrByList(origStr, repTarget, repList) of me on repLimitedOrderStrByList(allText as string, targChar as string, repList) set repParam to length of repList set itemCounter to 1 set outStr to "" set bList to characters of allText repeat with ii in bList set jj to contents of ii if jj = targChar then if repParam > 0 then set aRepStr to contents of item itemCounter of repList set outStr to outStr & aRepStr set repParam to repParam – 1 set itemCounter to itemCounter + 1 else set outStr to outStr & jj end if else set outStr to outStr & jj end if end repeat return outStr end repLimitedOrderStrByList |
More from my site
(Visited 89 times, 1 visits today)