プログラミング
CSVファイルは聞いたことがあると思いますが、CCSVファイルはどうでしょう?
You've heard of CSV files, but have you heard of CCSV files? (robida.net)
要約
この記事では、一般的なCSV(Comma Separated Values)ファイル形式の課題、特にフィールド内にカンマや引用符が含まれる場合の解析の複雑さについて説明しています。代替案として、非表示の制御文字(レコードセパレーター、ユニットセパレーター、エンドオブトランスミッション)を使用するCCSV(Control Character Separated Values)形式を紹介し、その解析の容易さと利便性を強調しています。
全文翻訳
CSVファイルは聞いたことがあると思いますが、CCSVファイルはどうでしょう?
Beto Dealmeida (/ bɛtto de aʊˈmeɪ da /) they/he ミュージシャン兼ソフトウェアエンジニア。元気候科学者。常にウェブマスター。
https://robida.net/contact@robida.net
Key Biscayne, FL, 33149, USA
Comma Separated Values (CSV) は、表形式データを保存するためのシンプルなプレーンテキスト形式です。CSVファイルを作成するには、データの各行をファイル内の1行として書き込み、列をカンマで区切ります。
name,age,favorite food
Beto,48,hummus
Martim,11,hamburger
解析は非常に簡単です。例えば、Pythonでの例は以下のようになります。
for row in open(filename):
for column in row.strip().split(","):
print(column)
簡単です。しかし、本当にそうでしょうか?
もしMartimの好きな食べ物がhamburger, fries, and sodaだったらどうでしょう?この場合、セルの値を表すために引用符を使用する必要があります。
name,age,favorite food
Beto,48,hummus
Martim,11,"hamburger, fries, and soda"
引用符の開閉を追跡する必要があるため、解析はより困難になります。また、値が "hamburger, fries, and soda" ではなく hamburger, fries, and soda となるように、引用符を削除する必要があります。しかし、セルのいずれかに引用符が含まれている場合はどうでしょうか?それらを保持する必要があります!
ご覧のとおり、すぐに複雑になります。公式な仕様が存在しないことも相まって、CSVファイルの解析は悪夢となることがあります。
Nice alternative is CCSV: Control Character Separated Values.
CCSVファイルは、非印刷可能で制御にのみ使用される3つの文字を使用します。
ASCII 30: record separator (␞)
ASCII 31: unit separator (␟)
ASCII 4: end-of-transmission (␄)
これらの文字を改行やカンマの代わりに使う利点は、データに出現する可能性が非常に非常に低いことです。CCSVファイルを解析する際に、特別なケースを処理する必要はありません。私たちのCSVファイルは以下のようになります。
name␟age␟favorite food␞
Beto␟48␟hummus␞
Martim␟11␟hamburger, fries, and soda␄
そして解析するには:
for row in open(filename).read().rstrip(chr(4)).split(chr(30)):
for column in row.split(chr(31)):
print(column)
私は新しいGforthブログでこの形式を使用しています。生成も解析も非常に簡単だからです。しかし、CCSVのウェブサイトが正しく指摘しているように、欠点もあります。
.ccsvファイルで使用される区切り文字は、通常、通常のテキストエディタでは表示されません。ファイル形式を認識しないエディタで手動でファイルを編集することは、不可能ではないにしても困難です。
CCSVファイルについて私が最も気に入っているのは、最後にEND OF TRANSMISSION文字を使用していることです。なんてクールなのでしょう!␄
2026-08-12T19:47:13.697Z
gemini://robida.net/entries/2026/08/12/youve-heard-of-csv-files-but-have-you-heard-of-ccs
datamailto:kimsheblue@gmail.com
https://robida.net/entries/2026/08/23/like-11
https://robida.net/entries/2026/08/12/youve-heard-of-csv-files-but-have-you-heard-of-ccs
mailto:kimsheblue@gmail.com
https://robida.net/entries/2026/08/23/like-11
https://robida.net/entries/2026/08/12/youve-heard-of-csv-files-but-have-you-heard-of-ccs