2023-08-10
#js 
怪しいデータが入り込む余地の少ないテキストファイルですが、構造を表すことが苦手です。

表形式にはCSVがいいですが、コンマの数を手で合わせるのは面倒ですし、柔軟性に欠けます。

JSONはプログラムからの扱いは楽ですが、プログラミングっぽい見た目は敬遠され、カッコの対応を手で合わせるのは大変です。

YMLはいい感じですが、インデントを正確に合わせる必要があり初心者にはちょっと難しい。

そこで、思い出した昔なつかしINIファイル。初期のWindowsではOSや各アプリの設定ファイルとして活躍しました。INIファイル - Wikipediaを見るとちゃんとした定義がないとのことなので、いい感じに定義してみました。 TOMLよりシンプルな分、優しい感じになっています。

鍵=ABCDEF 名前=福野泰介

というテキストファイルをINIファイルとしてパースできます。 import { INI } from "https://js.sabae.cc/INI.js"; console.log(INI.parse(`鍵=ABCDEF 名前=福野泰介`)); // { "鍵": "ABCDEF", "名前": "福野泰介" } ESモジュールなので、ブラウザやDenoからサクッと使えます。

角括弧でセクションを作って、階層の表現も可能です。

[鍵情報] 鍵=ABCDEF 名前=福野泰介 [鍵情報/備考] 生成日=2023-08-11

import { INI } from "https://js.sabae.cc/INI.js"; console.log(INI.parse(`[鍵情報] 鍵=ABCDEF 名前=福野泰介 [鍵情報/備考] 生成日=2023-08-11 `)); /* { "鍵情報": { "鍵": "ABCDEF", "名前": "福野泰介", "備考": { "生成日": "2023-08-11" } } } */ このように、構造も比較的わかりやすく表せます。


「INI - human friendly encoding on GitHub」

シンプルなオープンソースです!

links
- 人に優しいバイナリ表現、間違いやすい文字を排除した Base32(ベース32)

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS