ファイル操作†

32 個の関数。

FOPEN†

書式†

FOPEN(path, option)

引数†

Parameter Description
path ファイル名。フルパス指定可能。相対パスの場合は DLL の load で渡された位置が基準となる
option ファイルをどのように開くかを指定する。下記の「モード」または「別名」の文字列を指定する
テキストアクセス†
モード 別名 動作 ファイルがあるとき ファイルがないとき
"r" "read" テキスト読み出し 正常 エラー
"w" "write" テキスト書き込み サイズを 0 にする(上書き) 新規作成
"a" "append" テキスト追加書き込み 最後に追加する 新規作成
バイナリアクセス†
モード 別名 動作 ファイルがあるとき ファイルがないとき
"rb" "read_binary" バイナリ読み出し 正常 エラー
"wb" "write_binary" バイナリ書き込み サイズを 0 にする(上書き) 新規作成
"ab" "write_binary_append" バイナリ追加書き込み 最後に追加する 新規作成
ランダムアクセス†
モード 別名 動作 ファイルがあるとき ファイルがないとき
"r+" "read_random" テキスト読み書き 正常 エラー
"w+" "write_random" テキスト読み書き サイズを 0 にする(上書き) 新規作成
"a+" "append_random" テキスト読み書き 最後に追加する 新規作成
"rb+" "read_binary_random" バイナリ読み書き 正常 エラー
"wb+" "write_binary_random" バイナリ読み書き サイズを 0 にする(上書き) 新規作成
"ab+" "append_binary_random" バイナリ読み書き 最後に追加する 新規作成

戻り値†

解説†

ファイルをオープンする。

互換性†

関連項目†


FCLOSE†

書式†

FCLOSE( path )

引数†

Parameter Description
path FOPEN で指定した yaya.dll からの相対ファイルパス

戻り値†

返り値はありません(VOID)。

解説†

FOPEN で開いたファイルを閉じます。

互換性†

関連項目†


FREAD†

書式†

FREAD(path)

引数†

Parameter Description
path FOPENで指定したファイルの相対パス(yaya.dll からの相対パス)

戻り値†

事前に FOPEN でファイルを開いておく必要がある。

解説†

ファイルから 1 行読み取る。

注意†

EOF 検出のために次のようなコードを書くと、「-1 しか書かれていない行」がファイルに存在した場合に、それを EOF と誤認識して、読み込みが終わってしまうことがある。

_line = FREAD(_filename);
if(_line == -1) { break; }

これは、次のようにすると回避できる。

_line = FREAD(_filename);
if(GETTYPE(_line) == 1 && _line == -1) { break; }

EOF の -1 は整数値で、ファイルから読み込んだ "-1" は文字列なので、GETTYPE で値の種類を調べ、「整数値としての -1」の場合にのみ EOF として扱う。

互換性†

関連項目†


FREADENCODE†

書式†

FREADENCODE(path, size [, type])

引数†

Parameter Description
path FOPENで指定したファイル名
size 読み取るバイト数。0 を指定するとファイル全体を読み取る
type エンコード種別。"base64"、"url"、"form" のいずれか。省略時は "base64"(詳細は STRENCODE 参照)

戻り値†

ファイルをBase64またはURLエンコードしながら読み取る。バイナリモードで開いていない場合は行コード変換が適用される。事前に FOPEN でファイルを開いておく必要がある。

互換性†

関連項目†


FREADBIN†

書式†

FREADBIN( path , size [ , char ] )

引数†

Parameter Description
path FOPENで開いたファイルのファイル名
size 読み取るバイト数。0 を指定するとファイル全体を読み取る
char ヌルバイト(0x00)を置換する文字(省略時はスペース)

戻り値†

文字コード変換を行わずにバイナリデータをそのまま読み取る。行末変換を避けるため、事前に FOPEN でバイナリモードを指定することが推奨される。ヌルバイト(0x00)は指定した文字に置換される(文字列中にバイト値 0 を含めないという YAYA の制限による)。FOPEN をバイナリアクセスで開かない場合は、改行コード変換が行われる。

互換性†

関連項目†


FREADJSON†

書式†

FREADJSON( path [, charset] )

引数†

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

戻り値†

解説†

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

JSON の解析には parson を使っている。

値の対応†
JSON YAYA
オブジェクト ハッシュ
配列 汎用配列(要素に配列やハッシュを含む入れ子になる)
文字列 文字列
数値(整数の値) 整数
数値(それ以外) 実数
true / false 整数 1 / 0
null 空(VOID)
エラー†
状況 警告 GETLASTERROR
引数がない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
ファイルを開けない W0025 25
JSON として解析できない W0026 26

使用例†

data.json:

{
  "name": "さくら",
  "age": 17,
  "tags": ["ghost", "shell"],
  "profile": { "height": 158.5, "visible": true, "memo": null }
}
_j = FREADJSON("data.json")
_j["name"]                  // さくら
_j["tags"][1]               // shell
_j["profile"]["height"]     // 実数の 158.5
_j["profile"]["visible"]    // 1

foreach _j["tags"]; _t {
    // _t に "ghost"、"shell" が順に入る
}

互換性†

関連項目†


FREADXML†

書式†

FREADXML( path [, charset] )

引数†

Parameter Description
path 読み込む XML ファイルのパス(yaya.dll からの相対パス、または絶対パス)
charset ファイルの文字コード(省略可)。文字列("UTF-8" "Shift_JIS" など。文字コードの名前)または数値で指定する。省略時は下記のとおり自動で決める

戻り値†

解説†

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

XML の解析には TinyXML-2 を使っている。

charset を省略したときの文字コードは次の順に決める。

  1. 先頭に UTF-8 の BOM があれば UTF-8
  2. XML 宣言(<?xml version="1.0" encoding="Shift_JIS"?>)の encoding。Windows-31J CP932 も Shift_JIS として扱う
  3. どちらも無い、または encoding が YAYA の知らない文字コードなら UTF-8

charset を指定したときは XML 宣言の encoding を無視する。

要素の形†

要素は、次の4つのキーを持つハッシュになる。キーは中身が空でも必ずある。

キー 値
name タグ名(名前空間の接頭辞があれば ns:tag のまま)
attr 属性名 → 属性値 のハッシュ。値はすべて文字列
children 子要素のハッシュの汎用配列(出現順)
text 直下のテキスト(CDATA を含む)を順に連結した文字列
エラー†
状況 警告 GETLASTERROR
引数がない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
ファイルを開けない W0025 25
XML として解析できない W0026(エラーの内容と行番号も出力する) 26

使用例†

shop.xml:

<?xml version="1.0" encoding="Shift_JIS"?>
<shop name="A">
  <item id="1">りんご</item>
  <item id="2">バナナ</item>
</shop>
_x = FREADXML("shop.xml")
_x["name"]                          // shop
_x["attr"]["name"]                  // A
_x["children"][1]["name"]           // item
_x["children"][1]["attr"]["id"]     // 2
_x["children"][1]["text"]           // バナナ

foreach _x["children"]; _item {
    // _item["attr"]["id"] と _item["text"] を順に扱える
}

互換性†

関連項目†


FREADHTML†

書式†

FREADHTML( path [, charset] )

引数†

Parameter Description
path 読み込む HTML ファイルのパス(yaya.dll からの相対パス、または絶対パス)
charset ファイルの文字コード(省略可)。文字列("UTF-8" "Shift_JIS" など。文字コードの名前)または数値で指定する。省略時は下記のとおり自動で決める

戻り値†

解説†

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

HTML の解析には Gumbo(HTML5 の構文解析規則に従うパーサ)を使っている。閉じタグの抜けや壊れた入れ子があっても、ブラウザと同じ規則で補って木にするので、解析自体は失敗しない。<html> <head> <body> も無ければ補われる。

charset を省略したときの文字コードは次の順に決める。

  1. 先頭に UTF-8 の BOM があれば UTF-8
  2. 先頭 1024 バイト以内の <meta charset="Shift_JIS">、または <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> の文字コード。コメントの中は読まない。Windows-31J CP932 も Shift_JIS として扱う
  3. どちらも無い、または YAYA の知らない文字コード(UTF-16 を含む)なら UTF-8

charset を指定したときは <meta> を無視する。

要素の形†

要素は FREADXML と同じく、次の4つのキーを持つハッシュになる。キーは中身が空でも必ずある。

キー 値
name タグ名(HTML の要素は小文字。div custom-tag など)
attr 属性名 → 属性値 のハッシュ。値はすべて文字列。属性名は小文字になる
children 子要素のハッシュの汎用配列(出現順)
text 直下のテキストを順に連結した文字列
エラー†
状況 警告 GETLASTERROR
引数がない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
ファイルを開けない W0025 25
入れ子が深すぎる W0026(原因も出力する) 26

使用例†

page.html:

<!DOCTYPE html>
<html>
<head><meta charset="Shift_JIS"><title>お知らせ</title></head>
<body>
<h1>お知らせ</h1>
<ul>
  <li><a href="a.html">その1</a></li>
  <li><a href="b.html">その2</a></li>
</ul>
</body>
</html>
_h = FREADHTML("page.html")
_h["children"][0]["children"][1]["text"]     // お知らせ(<title>。[0] は <meta>)
_body = _h["children"][1]
_body["children"][0]["text"]                 // お知らせ(<h1>)
_ul = _body["children"][1]
foreach _ul["children"]; _li {
    _a = _li["children"][0]
    // _a["attr"]["href"] と _a["text"] を順に扱える
}

互換性†

関連項目†


FREADYAML†

書式†

FREADYAML( path [, charset] )

引数†

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

戻り値†

解説†

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

YAML の解析は YAYA が自前で行う。設定ファイルなどでよく使われる範囲(下記の 対応している書き方)に対応したもので、YAML の仕様をすべて満たしてはいない。

対応している書き方†
書き方 例
ブロック形式のマッピング・シーケンス key: value、- item。key: の下に同じ桁で - item を並べる書き方も可
フロー形式 [1, 2]、{a: 1, b: 2}。入れ子や、複数行にわたる書き方も可
クォートなしの文字列 複数行にわたってもよい(改行は空白になり、空行は改行になる)
クォート付きの文字列 '...'('' で ')、"..."(\n \t \" \\ \x41 あ \U0001F600 などのエスケープ)
ブロックスカラー |(改行をそのまま残す)、>(改行を空白にする)。末尾の改行の扱い |- |+、字下げの指定 |2 も可
コメント # から行末まで(値の後に書くときは # の前に空白が必要)
アンカーとエイリアス &name を付けた値を *name で参照する(値を複製する)
マージキー <<: *name や <<: [*a, *b] でマッピングを取り込む。明示したキーと、先に書いたものが優先
文書の区切り 先頭の ---(と、その前の %YAML などのディレクティブ)、末尾の ...
タグ !!str(と !)は文字列にする。!!int !!float !!bool !!null はクォートされていても型を決める。ほかのタグは無視する

次のものには対応していない。書かれていると W0026 になる。

値の対応†

型は YAML 1.2 の Core Schema の規則で決める。

YAML YAYA
マッピング ハッシュ。キーは常に文字列
シーケンス 汎用配列(要素に配列やハッシュを含む入れ子になる)
整数(123 -4 0o17 0x1F) 整数。10進で整数の範囲を超えるものは実数
実数(1.5 1e3 .5 .inf -.inf .nan) 実数
true / false(True TRUE なども) 整数 1 / 0
null / ~ / 値なし 空(VOID)
それ以外・クォート付き・ブロックスカラー 文字列
エラー†
状況 警告 GETLASTERROR
引数がない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
ファイルを開けない W0025 25
YAML として解析できない、対応していない書き方 W0026(行番号と原因も出力する) 26

使用例†

config.yaml:

# ゴーストの設定
name: さくら
age: 17
height: 158.5
visible: true
memo: ~
tags: [ghost, shell]
talk:
  greeting: |
    こんにちは。
    今日もいい天気ですね。
  random:
    - おはよう
    - こんばんは
defaults: &defaults
  volume: 80
  speed: 2
voice:
  <<: *defaults
  speed: 3
_y = FREADYAML("config.yaml")
_y["name"]                   // さくら
_y["tags"][1]                // shell
_y["height"]                 // 実数の 158.5
_y["visible"]                // 1
_y["memo"]                   // 空(VOID)
_y["talk"]["greeting"]       // "こんにちは。" + 改行 + "今日もいい天気ですね。" + 改行
_y["talk"]["random"][0]      // おはよう
_y["voice"]["volume"]        // 80(defaults から取り込んだもの)
_y["voice"]["speed"]         // 3

互換性†

関連項目†


FREADTOML†

書式†

FREADTOML( path [, charset] )

引数†

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

戻り値†

解説†

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

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

値の対応†
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 など) 書かれたとおりの文字列
エラー†
状況 警告 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: まゆら} のハッシュが順に入る
}

互換性†

関連項目†


FWRITE†

書式†

FWRITE( path, string )

引数†

Parameter Description
path FOPENで開いたファイルのパス(yaya.dllからの相対パス)
string 書き込む文字列

戻り値†

なし(VOID)

解説†

ファイルに1行書き込む関数。事前にFOPENでファイルを開いておく必要がある。

文字コードはYAYA内部形式からFCHARSETで指定した形式に変換して書き込む。行末には自動的に改行文字が付加される。

改行文字を付加せずに書き込む場合はFWRITE2を使用すること。

互換性†

関連項目†


FWRITE2†

書式†

FWRITE2( path, string )

引数†

Parameter Description
path FOPENで開いたファイルのパス(yaya.dllからの相対パス)
string 書き込む文字列

戻り値†

なし(VOID)

解説†

ファイルに1行書き込む関数。事前にFOPENでファイルを開いておく必要がある。

文字コードはYAYA内部形式からFCHARSETで指定した形式に変換して書き込む。FWRITEと異なり、行末に改行文字は付加されない。

改行文字を自動付加したい場合はFWRITEを使用すること。

互換性†

関連項目†


FWRITEBIN†

書式†

FWRITEBIN( path, string [, char] )

引数†

Parameter Description
path FOPENで指定したファイル名
string 書き込む文字列
char バイト値0x00の代替文字(省略時は半角スペース)

戻り値†

なし

解説†

文字コード変換を行わずにデータを書き込む関数。事前にFOPENでファイルを開いておく必要がある。

バイナリモードで開いていない場合は改行コード変換が発生する。

charに指定した文字は、YAYAが文字列中にnullバイトを持てないという制限により、バイト値0に変換される。

互換性†

関連項目†


FWRITEDECODE†

書式†

FWRITEDECODE( path, string [, type] )

引数†

Parameter Description
path FOPENで指定したファイル名
string 書き込むエンコードされた文字列
type デコード方式: "base64", "url", "form" のいずれか(省略時はbase64。詳細は STRDECODE を参照)。Tc554-1 は実装ミスで省略できなかった

戻り値†

なし

解説†

base64またはURLエンコードからデコードしながらデータを書き込む関数。FREADENCODEの逆操作を行う。

事前にFOPENでファイルを開いておく必要がある。FOPENをバイナリアクセスで開かない場合は、改行コード変換が行われる。デコード結果にバイト値0(0x00)が含まれていても、正常に書き込める。

互換性†

関連項目†


FWRITEJSON†

書式†

FWRITEJSON( path, value [, charset [, pretty]] )

引数†

Parameter Description
path 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス)
value JSON にする値。ハッシュや配列(入れ子を含む)も1つの引数として渡せる
charset ファイルの文字コード(省略可)。文字列("UTF-8" "Shift_JIS" など。文字コードの名前)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし)
pretty 1 なら改行とインデントを入れて整形する。省略時は 1(整形する)

戻り値†

解説†

値を JSON にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。

値の対応と整形の形は DUMPJSON と同じ。整形したときはファイルの末尾に改行(LF)を付ける。

書き込んだファイルは FREADJSON で読み戻せる(UTF-8 以外で書いたときは同じ charset を指定する)。

charset で表せない文字(Shift_JIS での絵文字など)は、JSON のエスケープ \uXXXX(BMP の外の文字はサロゲートペアの \uD83D\uDE00 のような2つ組)で書く。読み戻すと元の文字に戻る。

ディレクトリは作らない。存在しないディレクトリの中には書き込めない。

エラー†
状況 警告 GETLASTERROR
引数が足りない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
ファイルを開けない W0025 25
文字コードの変換そのものに失敗した W0027 27
書き込みに失敗した W0013 13

使用例†

_conf = IHASH()
_conf["volume"] = 80
_conf["friends"] = ("うにゅう", "まゆら")

FWRITEJSON("config.json", _conf)
// config.json:
// {
//     "friends": [
//         "うにゅう",
//         "まゆら"
//     ],
//     "volume": 80
// }

FWRITEJSON("config.min.json", _conf, "", 0)   // UTF-8 で1行に

互換性†

関連項目†


FWRITEXML†

書式†

FWRITEXML( path, element [, charset [, pretty]] )

引数†

Parameter Description
path 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス)
element ルート要素を表すハッシュ(FREADXML が返すのと同じ形)
charset ファイルの文字コード(省略可)。文字列("UTF-8" "Shift_JIS" など。文字コードの名前)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし)
pretty 1 なら改行とインデントを入れて整形する。省略時は 1(整形する)

戻り値†

解説†

要素のハッシュを XML にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。

要素のハッシュの形、エスケープ、整形の形は DUMPXML と同じ。先頭には charset に合わせた XML 宣言を付ける。

charset XML 宣言の encoding
UTF-8(省略時) UTF-8
Shift_JIS Shift_JIS
EUC-JP EUC-JP
ISO-2022-JP ISO-2022-JP
BIG5 Big5
GB2312 GB2312
EUC-KR EUC-KR
default(OS の文字コード) OS のコードページから決める(932 なら Shift_JIS)

書き込んだファイルは、XML 宣言の encoding を見るので、FREADXML で charset を指定せずに読み戻せる。

charset で表せない文字(Shift_JIS での絵文字など)は、テキストと属性値の中では文字参照 &#x1F600; で書く。読み戻すと元の文字に戻る。要素名・属性名の中の文字は文字参照にできないので、W0027 で失敗する。

ディレクトリは作らない。存在しないディレクトリの中には書き込めない。

エラー†
状況 警告 GETLASTERROR
引数が足りない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
要素のハッシュが不正(DUMPXML を参照) W0027 27
要素名・属性名に charset で表せない文字がある W0027 27
ファイルを開けない W0025 25
書き込みに失敗した W0013 13

使用例†

_x = FREADXML("shop.xml")
_x["children"][0]["text"] = "みかん"

FWRITEXML("shop.xml", _x, "Shift_JIS")
// shop.xml:
// <?xml version="1.0" encoding="Shift_JIS"?>
// <shop name="A">
//     <item id="1">みかん</item>
//     <item id="2">バナナ</item>
// </shop>

互換性†

関連項目†


FWRITEYAML†

書式†

FWRITEYAML( path, value [, charset [, pretty]] )

引数†

Parameter Description
path 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス)
value YAML にする値。ハッシュや配列(入れ子を含む)も1つの引数として渡せる
charset ファイルの文字コード(省略可)。文字列("UTF-8" "Shift_JIS" など。文字コードの名前)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし)
pretty 1 ならブロック形式、0 ならフロー形式の1行にする。省略時は 1

戻り値†

解説†

値を YAML にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。

値の対応と整形の形は DUMPYAML と同じ。ブロック形式のときはファイルの末尾に改行(LF)を付ける。

書き込んだファイルは FREADYAML で読み戻せる(UTF-8 以外で書いたときは同じ charset を指定する)。

charset で表せない文字(Shift_JIS での絵文字など)を含む文字列は、クォートしない形やブロックスカラー(|)にはせず、"..." で囲んでその文字を \uXXXX(BMP の外の文字は \U0001F600 のような8桁)で書く。キーも同じ。読み戻すと元の文字に戻る。

ディレクトリは作らない。存在しないディレクトリの中には書き込めない。

エラー†
状況 警告 GETLASTERROR
引数が足りない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
ファイルを開けない W0025 25
文字コードの変換そのものに失敗した W0027 27
書き込みに失敗した W0013 13

使用例†

_conf = IHASH()
_conf["volume"] = 80
_conf["friends"] = ("うにゅう", "まゆら")
_conf["memo"] = "1行目" + CHR(10) + "2行目"

FWRITEYAML("config.yaml", _conf)
// config.yaml:
// friends:
//   - うにゅう
//   - まゆら
// memo: |-
//   1行目
//   2行目
// volume: 80

FWRITEYAML("config.flow.yaml", _conf, "", 0)
// {friends: [うにゅう, まゆら], memo: "1行目\n2行目", volume: 80}

互換性†

関連項目†


FWRITETOML†

書式†

FWRITETOML( path, value [, charset [, pretty]] )

引数†

Parameter Description
path 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス)
value TOML にするハッシュ(入れ子を含む)
charset ファイルの文字コード(省略可)。文字列("UTF-8" "Shift_JIS" など。文字コードの名前)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし)。TOML の規格では UTF-8 と決まっているので、ふつうは省略する
pretty 1 なら [表] の見出しを使って整形する、0 なら最上位のキー1つにつき1行にする。省略時は 1

戻り値†

解説†

ハッシュを TOML にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。

値の対応と整形の形は DUMPTOML と同じ。

書き込んだファイルは FREADTOML で読み戻せる。

charset で表せない文字(Shift_JIS での絵文字など)を含む文字列は、'...' にはせず "..."(改行を含むときは """...""")で囲んで、その文字を \uXXXX(BMP の外の文字は \U0001F600 のような8桁)で書く。キーも同じ。読み戻すと元の文字に戻る。

ディレクトリは作らない。存在しないディレクトリの中には書き込めない。

エラー†
状況 警告 GETLASTERROR
引数が足りない W0008 8
path が文字列でない W0009 9
charset が不正 W0012 / W0009 12 / 9
value がハッシュでない、配列の要素に空(VOID)がある W0027(原因も出力する) 27
ファイルを開けない W0025 25
文字コードの変換そのものに失敗した W0027 27
書き込みに失敗した W0013 13

使用例†

_conf = IHASH()
_conf["volume"] = 80
_conf["friends"] = ("うにゅう", "まゆら")
_conf["memo"] = "1行目" + CHR(10) + "2行目"

FWRITETOML("config.toml", _conf)
// config.toml:
// friends = ["うにゅう", "まゆら"]
// memo = """
// 1行目
// 2行目"""
// volume = 80

互換性†

関連項目†


FCOPY†

書式†

FCOPY( path, dir )

引数†

Parameter Description
path コピー元のファイル名。フルパスまたは相対パス(DLLロード位置基準)。
dir コピー先のディレクトリ名

戻り値†

解説†

ファイルをコピーする。パスはフルパスで指定できる。相対パスの場合は DLL load で渡された位置(多くの場合、DLL のある位置)が基準になる。

互換性†

関連項目†


FMOVE†

書式†

FMOVE( path , dir )

引数†

Parameter Description
path 移動元のファイル名。フルパス指定可。相対パスはDLLのロード位置を基準とする
dir 移動先のディレクトリ名

戻り値†

解説†

ファイルを移動する。パスはフルパスで指定できる。相対パスの場合は DLL load で渡された位置(多くの場合、DLL のある位置)が基準になる。

互換性†

関連項目†


FDEL†

書式†

FDEL( path )

引数†

Parameter Description
path 削除するファイルのパス。フルパスまたは相対パス(DLLロード位置基準)。

戻り値†

解説†

ファイルを削除する。パスはフルパスで指定できる。相対パスの場合は DLL load で渡された位置(多くの場合、DLL のある位置)が基準になる。

互換性†

関連項目†


FRENAME†

書式†

FRENAME( from , to )

引数†

Parameter Description
from 変更前のファイル名。フルパス指定可。相対パスはDLLのロード位置を基準とする
to 変更後のファイル名

戻り値†

解説†

ファイルの名前を変更する。パスはフルパスで指定できる。相対パスの場合は DLL load で渡された位置(多くの場合、DLL のある位置)が基準になる。

FOPEN で開いたままのファイルは名前を変更できず、0 が返る。リネームする前に FCLOSE で閉じておく。

互換性†

関連項目†


FSIZE†

書式†

FSIZE(path)

引数†

Parameter Description
path サイズを取得するファイルのパス。フルパス指定可。相対パスはDLLのロード位置を基準とする

戻り値†

解説†

ファイルサイズを取得する。パスはフルパスで指定できる。相対パスの場合は DLL load で渡された位置(多くの場合、DLL のある位置)が基準になる。

互換性†

関連項目†


FENUM†

書式†

FENUM( path [ , delim ] )

引数†

Parameter Description
path 列挙するディレクトリのパス。フルパス指定可。相対パスはDLLのロード位置を基準とする
delim 区切り文字列(省略時はカンマ)

戻り値†

解説†

指定した位置にあるファイル名とディレクトリ名を列挙し、区切り文字で連結した文字列として返す。パスはフルパスで指定できる。相対パスの場合は DLL load で渡された位置(多くの場合、DLL のある位置)が基準になる。ディレクトリ名の先頭には \ が付く。

互換性†


FCHARSET†

書式†

FCHARSET( code )

引数†

Parameter Description
code 設定する文字コードID、または文字コードの名前(文字コードの名前)。知らない名前なら警告 W0012 を出し、設定を変えない

戻り値†

返り値はありません(VOID)。

解説†

ファイルの読み書きに使用する文字コードを指定します。FOPEN の前に呼び出す必要があります。ファイルごとに文字コードを変更でき、文字コードは FOPEN が呼ばれた時点で決定されます。設定はゴーストの現在のセッション中は維持されますが、終了後にリセットされます。FCHARSET を呼ばない場合のデフォルト文字コードは、基本設定ファイルの charset.file または charset の設定に従います。

UTF-8 の場合、読み取り時にファイル先頭の BOM(Byte Order Mark)が見つかると自動的に取り除かれます。UTF-8 での書き込みでは BOM を書きません。

互換性†

関連項目†


FATTRIB†

書式†

FATTRIB( path )

引数†

Parameter Description
path 各種情報を取得したいファイルまたはディレクトリのパス。フルパス指定可能。相対パスの場合は DLL の load で渡された位置が基準

戻り値†

11要素の汎用配列を返す。失敗した場合は -1 を返す。

インデックス 内容
[0] アーカイブ可能(Windows のみ)= 1、その他 = 0
[1] 圧縮(Windows のみ)= 1、その他 = 0
[2] ディレクトリ = 1、その他 = 0
[3] 隠しファイル(Windows のみ)= 1、その他 = 0
[4] ふつうのファイル = 1、その他 = 0
[5] オフラインファイル(Windows のみ)= 1、その他 = 0
[6] 読み取り専用(Windows のみ)= 1、その他 = 0
[7] システムファイル(Windows のみ)= 1、その他 = 0
[8] 一時ファイル(Windows のみ)= 1、その他 = 0
[9] ファイル作成日時。UNIX の場合は inode 更新日時
[10] ファイルの最終更新日時

日時の単位は、1970/1/1 0 時を基準とした秒数(epoch)。ふつうの日付情報に直したい場合は、GETTIME(_attrib[10]) のようにする。

解説†

ファイルやディレクトリの各種情報を取得する。フルパス指定もできる。相対パスの場合は、DLL の load で渡された位置(多くの場合、DLL のある位置)が基準となる。

使用例†

_attrib = FATTRIB('hoge.txt')
_attrib[10]          // 最終更新日時(エポック秒)
GETTIME(_attrib[10]) // 読みやすい形式に変換

互換性†

関連項目†


FSTATUS†

書式†

FSTATUS(path)

引数†

Parameter Description
path FOPENで指定したファイル名

戻り値†

直前のファイルI/O操作(FOPEN・FREAD・FWRITE・FSEEK・FTELLなど)の結果ステータスを返す。

戻り値 意味
0 正常終了(エラーなし)
-1 エラー発生
1 ファイル末尾(EOF)に達した

解説†

ファイル読み書き関数(FOPEN・FREAD 系・FWRITE 系・FSEEK・FTELL)の直前の操作の状態を取得する。

互換性†

関連項目†


FDIGEST†

書式†

FDIGEST(path [, type])

引数†

Parameter Description
path ダイジェスト値を計算するファイルのパス。フルパス指定可。相対パスはDLLのロード位置を基準とする
type ダイジェストの種類。MD5・SHA-1・SHA-2・SHA-3・Adler-32・各種 CRC。一覧は STRDIGEST を参照。省略すると MD5

戻り値†

解説†

指定したファイルのダイジェスト(ハッシュ)値を得る。パスはフルパスで指定できる。相対パスの場合は DLL load で渡された位置(多くの場合、DLL のある位置)が基準になる。

type の書き方と、CRC-32 だけ値の下位バイトから先に並ぶ点は STRDIGEST と同じ。文字列の内部表現ではなくファイルの中身のバイト列をそのまま計算するので、他のツールの結果と照らし合わせられる。

確認用の値†

123456789(9バイト、改行なし)だけを書いたファイルの値。

type 値
Adler-32 091E01DE
CRC-32 2639F4CB
CRC-32B CBF43926
CRC-32C E3069283
CRC-32/BZIP2 FC891918
CRC-32/MPEG-2 0376E6E7
CRC-32/JAMCRC 340BC6D9
CRC-16/ARC BB3D
CRC-16/CCITT-FALSE 29B1
CRC-16/XMODEM 31C3
CRC-16/KERMIT 2189
CRC-16/MODBUS 4B37
CRC-16/X-25 906E
CRC-8 F4
CRC-8/MAXIM A1
CRC-64/XZ 995DC9BBDF1939FA
CRC-64/ECMA-182 6C40DF5F0B497347

互換性†

関連項目†


FSEEK†

書式†

FSEEK(path, offset, origin)

引数†

Parameter Description
path FOPENで指定したファイル名
offset 移動するバイト数
origin 移動の起点を示す文字列。SEEK_CUR または current(現在位置)、SEEK_END または end(ファイル終端)、SEEK_SET または start(ファイル先頭)

戻り値†

非バイナリモードでは改行コードの自動変換により FSEEK/FTELL が期待通りに動作しない場合がある。これらの関数を使用する場合は FOPEN でバイナリモードを指定することを推奨する。

解説†

ファイル読み書きの際の位置(ファイル位置指示子)を移動する。

関連項目†


FTELL†

書式†

FTELL(path)

引数†

Parameter Description
path FOPENで指定したファイル名

戻り値†

非バイナリモードでは改行コードの自動変換により FSEEK/FTELL が期待通りに動作しない場合がある。これらの関数を使用する場合は FOPEN でバイナリモードを指定することを推奨する。

解説†

ファイル読み書きの際の位置(ファイル位置指示子)を取得する。

関連項目†


MKDIR†

書式†

MKDIR(path)

引数†

Parameter Description
path 作成するディレクトリのパス

戻り値†

解説†

ディレクトリを作成します。フルパスの指定に対応しています。相対パスの場合、基準点はDLLの位置になります。

制限事項: 一階層づつしか作成できません。存在しない複数階層のネストを一度に指定するとエラーになります。

互換性†

関連項目†


RMDIR†

書式†

RMDIR( path )

引数†

Parameter Description
path 削除するディレクトリのパス(フルパスまたは相対パス。相対パスはDLLロード位置が基準)

戻り値†

解説†

ディレクトリを削除します。空のディレクトリしか削除できません。ファイルが含まれているディレクトリを削除しようとするとエラーになります。

互換性†

関連項目†