CSV 為什麼同時有 Rating 和 Circle,兩欄為什麼會互相矛盾
SlateX 的 CSV 是逐機位一行,沒有機位的條也會輸出一行;目前的表頭與欄序寫死,只能在既有順序之後追加,不能把現有的欄重排。Rating 和 Circle 看起來都像在描述同一個現場檔位,但它們並不是兩路現場狀態:兩欄都從檔位數值派生,而且派生條件不同,所以同一條記錄可以在兩欄裡給出看起來不一致的結果。
Rating與Circle都是從檔位數值派生的交付欄位,不應把它們當成兩路獨立的現場圈選狀態。
CSV 的行形態先按機位展開
一條 Take 有幾台機位,CSV 就按機位展開成對應的資料行;如果這一條沒有機位,仍然會輸出一行,只是機位相關欄的缺值形態各不相同:有的留空,有的落到預設值,接收方應逐欄核對。表頭使用固定的英文欄名,欄序也由常數定義,不會跟著 App 介面語言切換。
這一點與《CSV 交付比 ALE 多帶什麼、少帶什麼》的口徑一致:CSV 的欄位結構要按檔案本身核對,不能從另一種交付檔案推斷它會帶有同一套欄。
Rating 把檔位數值翻成固定英文文字
Rating 的對應關係是固定的:數值 4 寫 Circle,3 寫 Keep,2 寫 Hold,1 寫 N/G,沒有標檔時寫空字串。這組交付文字是英文常數,不跟著介面語言變化。
因此 Rating 是「檔位數值的文字化結果」,不是另外讀一份現場狀態。中文介面、英文介面或其他介面語言可以各有各的顯示文案,但 CSV 這裡仍按固定的英文詞輸出。
Circle 只檢查是不是第 4 檔
Circle 的規則更窄:只有檔位數值等於 4 時寫 TRUE,其他情況一律寫 FALSE。這一欄沒有空值分支,因此未標檔、Keep、Hold、N/G 都會得到一個明確的假值,而不是留空。
這就產生了標題所問的那個矛盾。現場把一條標為 Keep 時,內部還有一個圈選狀態位會在某些寫入路徑裡一起被置為真;但 CSV 的 Circle 並不讀取那個狀態位,它只看檔位是不是 4,所以這一條在 CSV 裡會是 Rating=Keep、Circle=FALSE。
兩欄都不讀現場狀態或圈選標誌
Rating 和 Circle 都不讀取現場狀態文字,也不讀取那個內部的圈選狀態位。它們只是把同一個檔位數字走兩套不同的派生規則。因此接收方不能把 Circle 這一欄解釋成「現場有沒有圈選」的直接記錄,也不能把兩欄當作互相校驗的獨立來源。
能下的結論只能是:檔位在不同交付物裡的可見形態並不相同,這裡給出的只是 CSV 兩欄各自的來源。這兩欄都不攜帶那個內部狀態位,所以既不能把 Circle 還原成現場圈選,也不能反過來說現場狀態完整地跟著 CSV 走。
Keep 條可以同時得到Rating=Keep與Circle=FALSE;這是兩套派生條件不同,不是兩路現場狀態互相否定。
CSV 還有兩條需要同時看的形態邊界
表頭由常數直接拼接,不經過欄位轉義;資料欄位裡的換行與製表符會先被壓成空格,而不是保留換行之後靠引號包裹。因此不能把這份輸出概括成「符合 RFC4180」。這裡說的是目前的生成形態,不替任何下游試算表或剪輯系統判斷它會怎樣解讀檔案。
欄名也是固定的英文常數,不會跟著 App 語言切換。《ALE 每一欄的值從哪裡來》和《拿到 ALE,先核對這些欄位》所強調的接收原則在這裡同樣成立:接收方應按自己的匯入範本逐欄核對實際欄名、值形態與來源。
FAQ
Rating 會跟著介面語言變化嗎?
不會。CSV 裡的檔位文字是固定的英文常數,未標檔時 Rating 寫空字串。
Circle 為空是不是表示沒有圈選?
Circle 沒有空值分支。檔位等於 4 寫 TRUE,其他情況寫 FALSE。
為什麼 Keep 會得到 Circle=FALSE?
因為 Circle 只檢查檔位是不是 4;Keep 對應的是另一個檔位,因此會寫 FALSE,即使那個內部圈選狀態位在寫入路徑裡為真。
可以把 Circle 當成現場圈選狀態嗎?
不能這樣解釋。它只由「是不是第 4 檔」這個條件派生;接收方應結合 Rating 與自己的匯入規則核對含義。
Axiom One LLC — SlateX。以上數字截至 2026-09-24。