[TSV]タブ区切りテキスト基本
#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
(*
タブ区切りテキストをArrayに
public.tab-separated-values-text
text/tab-separated-values
*)
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions
property refMe : a reference to current application
tell application "CotEditor"
tell front document
set strText to contents
set strActivDocName to name
####改行コード取得
set valueNewLineChr to (line ending)
end tell
if valueNewLineChr is CRLF then
log "改行コードはCRLF=WINDOWSです"
else if valueNewLineChr is CR then
log "改行コードはCR=MacOSです"
else if valueNewLineChr is LF then
log "改行コードはLF=UNIXです"
end if
end tell
#####元になるタブ区切りテキスト
set strText to strText as text
###NSStringに
set ocidText to refMe's NSString's stringWithString:strText
###不要な改行を取る(これは必要なら実施)
set ocidText to ocidText's stringByTrimmingCharactersInSet:(refMe's NSCharacterSet's whitespaceAndNewlineCharacterSet)
############################
######改行毎でリスト化(他にいい方法がありそうな気もする)
############################
######改行コード
set boolCRLF to ocidText's containsString:"\r\n"
set boolCR to ocidText's containsString:"\r"
#####格納用リストの初期化
set ocidTextArray to refMe's NSMutableArray's alloc()'s initWithCapacity:0
#####改行コード判定
if boolCRLF is true then
log "改行コードはCRLF=WINDOWSです"
#####CRLF指定でリスト化
set ocidTextArray to ocidText's componentsSeparatedByString:"\r\n"
else if boolCR is true then
log "改行コードはCR=MacOSです"
####改行コード指定でリスト化
set ocidLineEndChrSet to refMe's NSCharacterSet's characterSetWithCharactersInString:"\r"
set ocidTextArray to ocidText's componentsSeparatedByCharactersInSet:ocidLineEndChrSet
else
set boolLF to ocidText's containsString:"\n"
if boolLF is true then
log "改行コードはLF=UNIXです"
####改行コード指定でリスト化
set ocidLineEndChrSet to refMe's NSCharacterSet's characterSetWithCharactersInString:"\n"
set ocidTextArray to ocidText's componentsSeparatedByCharactersInSet:ocidLineEndChrSet
else
log "改行の無い1行の文字列です"
return "改行の無い1行の文字列です"
end if
end if
############################
######必要な事項
############################
####行数
set numRowLine to (count of ocidTextArray) as integer
####最大列数(行ROWによってタブ数が違う場合対策用)
set numMaxColumnLine to 0 as integer
repeat with itemTextArray in ocidTextArray
set ocidCntTabArray to (itemTextArray's componentsSeparatedByString:"\t")
set numCntTab to (count of ocidCntTabArray) as integer
if numMaxColumnLine < numCntTab then
set numMaxColumnLine to numCntTab as integer
end if
end repeat
log "行数:" & numRowLine
log "最大列数:" & numMaxColumnLine
| 固定リンク
「Text TSV」カテゴリの記事
- ユーザー辞書作成支援スクリプト(追加辞書用テキストも作成するようにした)(2024.10.13)
- TSV2HTML TSVタブ区切りテキストをHTMLテーブルにする(少し修正)(2024.03.28)
- TSV行列入替(2024.03.28)
- TSV2AdobeXML タブ区切りテキストからAdobe Illustratorの変数印字用の『変数ライブラリ』を生成する(1ページに複数面付け版)(2024.03.06)
- TSV2AdobeXML タブ区切りテキストからAdobe Illustratorの変数印字用の『変数ライブラリ』を生成する(2024.03.06)