Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

結合順をラベルのリストで指定し、record in listをlist in listに書き換える(CSV書き出し用下処理)

Posted on 11月 2 by Takaaki Naganoya

record in listをCSV書き出しのために、ルール指定listの内容にのっとって、list in list(2D list)に変換するAppleScriptです。

とくに、ルール指定listの中にはrecordのラベルを指定しておくのですが、ヌル項目を出力するために、ルール中に””を指定しておくと、””を2D List中に出力するようになっています。

recordから任意のラベルの値を取り出すのにrun scriptを使ってevalのような動作を行なっています。これが処理速度上のボトルネックになるかどうか。もしも、ボトルネックになるようなら、NSRecordに変換したのちにValueForKey:で取り出してもよいでしょう。

ただ、ほとんどの場合にCocoa Objectを使ったほうが遅くなると思います(データが小さすぎるケースがほとんどなので)。

AppleScript名:結合順をラベルのリストで指定し、record in listをlist in listに書き換える(CSV書き出し用下処理).scpt
—
–  Created by: Takaaki Naganoya
–  Created on: 2026/11/02
–  Copyright © 2026 Piyomaru Software, All Rights Reserved
—

set aData to {{aaa:"01", bbb:"02", ccc:"03"}, {aaa:"11", bbb:"12", ccc:"13"}}
set aRule to {"", "ccc", "bbb", "aaa", ""}

set aRes to getValueFieldWithRule(aData, aRule) of me
–> {{"", "03", "02", "01", ""}, {"", "13", "12", "11", ""}}

set bRule to {"", "aaa", "bbb", "ccc", ""}
set bData to {{aaa:1, bbb:2, ccc:3}, {aaa:11, bbb:12, ccc:13}}

set bRes to getValueFieldWithRule(bData, bRule) of me
–> {{"", 1, 2, 3, ""}, {"", 11, 12, 13, ""}}

–結合順をラベルのリストで指定し、record in listをlist in listに書き換える(CSV書き出し用下処理)
on getValueFieldWithRule(aData, aRule)
  
  
script spd
    property aData : {}
    
property aResult : {}
    
property aRow : {}
  end script
  
  
set (aData of spd) to aData
  
set (aResult of spd) to {}
  
  
repeat with aRecord in (aData of spd)
    
    
set (aRow of spd) to {} –1行分のデータ
    
    
repeat with oneLabel in aRule
      set aLabel to contents of oneLabel
      
      
if aLabel is not equal to "" then
        set aScript to "on run {aRecord}" & linefeed & "return " & aLabel & " of aRecord" & linefeed & "end run"
        
        
set aValue to run script aScript with parameters {contents of aRecord}
      else
        set aValue to "" –空きフィールドの出力
      end if
      
      
set end of (aRow of spd) to aValue
    end repeat
    
    
set end of (aResult of spd) to (aRow of spd)
  end repeat
  
  
return (aResult of spd)
  
end getValueFieldWithRule

★Click Here to Open This Script 

(Visited 1 times, 1 visits today)
Posted in list | Tagged 26.0savvy 27.0savvy | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 最初期に書かれた書籍「AppleScript道入門」の序文をいま振り返る
  • Apple Creator Studioに含まれるKeynote/Pages/Numbersは新バージョン?
  • 簡易カラーチャート画像の出力 v2.1
  • macOS 15.7.2 スクリプトメニューから実行できなくなった地図系ライブラリ?
  • ASCII ART QR Encoder
  • 「AppleScriptセキュリティ実践ガイド」を発売
  • Keynote->Keynote Creator Studio(以下同様)
  • 翻訳テスト
  • Finder上で選択中のHEIC画像から位置情報を削除_v5
  • FSFindFolder failed with error=-43
  • YouTubeムービー再生実験
  • 2025年に書いた価値あるAppleScript
  • 関数計算ライブラリで一部のユーザーから再現しない問題が報告される件
  • ワークスペース切り替えv2.1
  • YouTubeムービー再生実験 v2c
  • macOS 26.xのSystem Events/Screen Saver preferencesにバグ
  • macOS 26.1が登場。Finderのバグが直らない?
  • 住所ジオコーダー2026年最新版
  • タブでインデントしたテキストをOutLineViewで表示できるデータ形式に変換 v4(3階層対応)
  • 指定日が所属する週のうち、最終日の日付を求める v2

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (440) 11.0savvy (283) 12.0savvy (212) 13.0savvy (204) 14.0savvy (159) 15.0savvy (173) 26.0savvy (54) CotEditor (68) Finder (53) Keynote (123) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (80) Pages (58) Safari (45) Script Editor (28) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • Apple Inteligence
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Newt On Project
  • NFC
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • process
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • Scripting Additions
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spaces
  • Spellchecker
  • Spotlight
  • SVG
  • Swift
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2026年11月
  • 2026年10月
  • 2026年9月
  • 2026年8月
  • 2026年7月
  • 2026年6月
  • 2026年5月
  • 2026年3月
  • 2026年2月
  • 2026年1月
  • 2025年12月
  • 2025年11月
  • 2025年10月
  • 2025年9月
  • 2025年8月
  • 2025年7月
  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC