コンテンツにスキップ

FREADTOML

Category: ファイル操作

書式

FREADTOML( path [, charset] )

引数

Parameter Description
path 読み込む TOML ファイルのパス(yaya.dll からの相対パス、または絶対パス)
charset ファイルの文字コード(省略可)。文字列("UTF-8" "Shift_JIS" など)または数値で指定する。省略時は UTF-8(TOML の規格では UTF-8 と決まっている)

戻り値

  • 成功時: TOML を変換したハッシュ(下記の 値の対応)
  • 失敗時: 空(VOID)

解説

TOML ファイルを丸ごと読み込んで解析し、ハッシュにして返す。FOPEN で開いておく必要はない。

TOML の解析は YAYA が自前で行う。TOML v1.0.0 に対応している。v1.1 で加わった、インライン表の中の改行と末尾のカンマ、\e \xHH のエスケープも受け付ける。

  • 先頭の UTF-8 の BOM は無視する。改行は CRLF / LF のどちらでもよい
  • 最上位は常にハッシュになる。空のファイルや、コメントだけのファイルは空のハッシュになる
  • 同じキーや表を2回定義する、ドットのキーで作った表を [表] で定義し直す、インライン表に後から足す、などの規格で禁じられていることはエラーにする

値の対応

TOML YAYA
表([table]・インライン表 { }・ドットのキー a.b = 1) ハッシュ
表の配列([[array]]) ハッシュの汎用配列
配列 汎用配列(要素に配列やハッシュを含む入れ子になる)
文字列("..." '...' """...""" '''...''') 文字列
整数(42 1_000 0xDEAD 0o755 0b1101) 整数
実数(3.14 5e+22 inf nan) 実数
true / false 整数 1 / 0
日時(1979-05-27T07:32:00Z、1979-05-27、07:32:00 など) 書かれたとおりの文字列
  • 整数の範囲(-2^63 以上 2^63 未満)を超える整数はエラーにする
  • キーの並びは保たれない。ハッシュのキーの順になる(HASH_KEYS を参照)

エラー

状況 警告 GETLASTERROR
引数がない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
ファイルを開けない W0025 25
TOML として解析できない W0026(行番号と原因も出力する) 26

使用例

config.toml:

# ゴーストの設定
title = "設定"
updated = 2026-09-27T12:00:00+09:00

[ghost]
name = "さくら"
age = 17
visible = true
tags = ["ghost", "shell"]
path = 'C:\ssp\ghost'

[[friends]]
name = "うにゅう"

[[friends]]
name = "まゆら"
_t = FREADTOML("config.toml")
_t["title"]                 // 設定
_t["updated"]               // 文字列の 2026-09-27T12:00:00+09:00
_t["ghost"]["name"]         // さくら
_t["ghost"]["visible"]      // 1
_t["ghost"]["tags"][1]      // shell
_t["ghost"]["path"]         // C:\ssp\ghost
_t["friends"][1]["name"]    // まゆら

foreach _t["friends"]; _f {
    // _f に {name: うにゅう}、{name: まゆら} のハッシュが順に入る
}

互換性

  • YAYA: Tc602-5以降

関連項目