セクションファイル

ページ名:セクションファイル

セクションファイル (Section file, secfile)は、Freeciv がデータを保存するファイルの標準形式です。ルールセットなどのファイルは、この INI に似た形式で保存され、ディスク容量を節約するために圧縮されることがあります。ソースコードでは、secfile 読み取りのメインフロントエンドは utility/registry_ini.[ch] にあり、このマニュアルの大部分はコメントからコピーされています。

目次

空白とコメント[]

  • 空白行は無視されます。
  • 最初の非空白文字が ';' である行も無視されます。 (コメント行)
  • オプションで「#」をコメントに使用することもできます。

各行の形式[]

インクルード[]

*include "filename"

指定されたファイルをその時点でインクルードします。 (「*」は行の最初の文字でなければなりません。) ファイルは、FREECIV_DATA_PATH を調べることによって見つかります。 有限回の再帰インクルードが許可されます。

セクション名[]

[name] の行は、その名前のセクションの開始を示します。ファイル内の最初の非コメント行はこの形式でなければなりません。 括弧内のスペースは名前に含まれますが、この機能 (?) はおそらく使用すべきではありません。セクションを分割して複数個所で表記することは自由ですが、このセクションを利用する関数がファイルを読むとき、後に同名のセクションが見つかった場合は残りのコードを破棄します (これは現在 [scenario] セクションのみを制限しています)。

値と型[]

セクション内では、各行は次のいずれかの形式になります。指定された名前の文字列、負の整数、正の整数、実数、ブール値の真と偽が利用できます。

subname = "stringvalue" subname = -digits subname = digits subname = ([+-])?digits.(digits)? subname = TRUE sunname = FALSE

これらのエントリは、次の関数で「sectionname.subname」として参照されます。セクション名にドット ('.') を含めないでください。 サブネームに含むことはできますが、特別な意味はありません。正式には、セクション名とエントリ名は英数字または _.,-[] のいずれかで構成されますが、原則として文字とアンダースコアのみを使用してください。 等号の前後に任意の空白を入れることができます。等号の後に (前には不可) 改行を入れることができます。

エスケープ[]

バックスラッシュは、文字列内のエスケープ文字です (二重引用符で囲まれた文字列内のみです)。 認識されるエスケープは、\n、\\、および \" です。その他の \ は、 として扱われます。 行末のバックスラッシュは改行文字を削除します ($...$-strings または *...*-files 内であっても)。

Lua スクリプトの script.code エントリでよく使用される文字列 $something$ の代替構文があります。これは、引用符をエスケープする必要がなく、 Lua は \ 自体を扱います。

string型[]

  • Gettext マーキング: 次のように文字列を囲むことができます。
foo = _("文字列値")レジストリはこれらの余分なマーキングを無視しますが、これは gettext ツールを介して翻訳する文字列をマーキングするのに役立ちます。
  • 複数行の文字列: 文字列には改行を埋め込むことができます。
foo = _(" これは 複数行にわたる文字列です ")これは以下と同等です: foo = _("\nこれは\n複数行にわたる文字列です\n")末尾の二重引用符の位置を間違えると、ファイルの読み取りでエラーが発生する可能性があることに注意してください。
  • ファイルから読み取る文字列: ファイルは文字列値として読み取ることができます。
foo = *filename.txt*

vector型[]

エントリには、コンマで区切られた複数の値を含めることができます。

foo = 10, 11, "x"

これらは、「foo」、「foo,1」、および「foo,2」という名前でアクセスされます(上記のようにセクション接頭辞付き)。 したがって、上記は次と同等です。

foo = 10 foo,1 = 11 foo,2 = "x"

整数と文字列を混在させることができますが、呼び出し元のプログラムは、おそらく同じ型の要素を予想することに注意してください。またベクトルの最初の要素は「foo,0」ではないことに注意してください。これは後続の要素があるかどうかに関係なく、最初の要素の名前を同じにするためです。ただし便宜上「foo,0」を検索すると「foo」が返されます。 したがって、データファイル上の名前として「foo,0」を使うべきではありません。)

行の最後の非コメント非空白文字がコンマの場合、その行は次の行に続くと見なされます。

foo = 10, 11, "x"

これは上記の元のベクトル形式の例と同等です。このような複数行ベクトルは、列見出し、ベクトル、テーブルの行、または書き間違いの可能性があります。

table型[]

foo = { "bar", "baz", "bax" "wow", 10, -5 "cool", "str" "hmm", 314, 99, 33, 11 }

これは以下と同等です。

foo0.bar = "wow" foo0.baz = 10 foo0.bax = -5 foo1.bar = "cool" foo1.baz = "str" foo2.bar = "hmm" foo2.baz = 314 foo2.bax = 99 foo2.bax,1 = 33 foo2.bax,2 = 11

最初の行はベース名と列名 ("" 内の文字列でなければなりません) を指定し、その後の行にはデータがあります。 列に文字列と整数値を混在させ、列見出しよりも多くの値または少ない値を行に含めることができますが、この情報を (レジストリを介して) 使用するコードは、より厳しい条件を設定する場合があります。 行に列見出しよりも多くのエントリがある場合、最後の列はベクトルとして扱われます (上記のように)。 オプションで、'=' および/または '{' の後に改行を入れることができます。 参考までに、sectionname.entryname パスの長さは 1024 を超えることはできません。

上記の新しい形式と古い形式は同等です。内部的にはデータは古い形式に変換されます。原則としてデータを内部的にもテーブル (2 次元配列) として表現することを推奨しますが、現在の方法で十分であり、比較的単純です。

データを表形式で保存する機能には制限があります。section_file が想定どおりに作成されている限り、表形式のデータ (欠損値や余分な値がない) を表形式で保存できます。 (section_file_save() を参照してください)。



特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。

シェアボタン: このページをSNSに投稿するのに便利です。


最近更新されたページ

左メニュー

左メニューサンプル左メニューはヘッダーメニューの【編集】>【左メニューを編集する】をクリックすると編集できます。ご自由に編集してください。掲示板雑談・質問・相談掲示板更新履歴最近のコメントカウン...

高山部隊

高山部隊U.alpine troops.png生産コスト50維持コストシールド食料不幸101必要条件戦術旧式化するなし次世代なし体力移動力攻撃力2015火力視界防御力125輸送燃料00地形効果を無視し...

騎馬兵

騎馬兵U.horsemen.png生産コスト20維持コストシールド食料不幸101必要条件騎乗旧式化するなし次世代騎士体力移動力攻撃力1022火力視界防御力121輸送燃料00ユニットのマニュアルページヘ...

騎士

騎士U.knights.png生産コスト40維持コストシールド食料不幸101必要条件騎兵隊旧式化するチャリオット, 騎馬兵次世代竜騎兵体力移動力攻撃力1024火力視界防御力122輸送燃料00特定の防御...

騎兵隊

騎兵隊U.cavalry.png生産コスト60維持コストシールド食料不幸101必要条件戦術旧式化する竜騎兵次世代機甲部隊体力移動力攻撃力2028火力視界防御力123輸送燃料00都市で解散することで生産...

駆逐艦

駆逐艦U.destroyer.png生産コスト60維持コストシールド食料不幸101必要条件電気学旧式化する装甲艦次世代なし体力移動力攻撃力3064火力視界防御力184輸送燃料00都市で解散することでユ...

関連リンク

非公式wikiに関連リンクの記事がありますFreeciv非公式wiki 攻略情報満載。初心者でも熟練者でもどうぞ!公式Twitteren:Related_links 英語版の関連リンクFreeciv基...

開拓者

開拓者U.settlers.png生産コスト40維持コストシールド食料不幸110必要条件なし旧式化するなし次世代なし体力移動力攻撃力2010火力視界防御力121輸送燃料00開拓者はゲームの鍵となるユニ...

長槍兵

長槍兵U.pikemen.png生産コスト20維持コストシールド食料不幸101必要条件封建主義旧式化するファランクス, 戦士次世代マスケット兵体力移動力攻撃力1011火力視界防御力122輸送燃料00ユ...

都市

概要 | 操作 | 地形 | 都市 | ユニット | 戦闘 | 経済 | 外交 | 政治体制 | 科学技術 | 世界の不思議 | 都市建造物 | マニュアルのトップページこのマニュアルはまだver3....

輸送船

輸送船U.transport.png生産コスト50維持コストシールド食料不幸101必要条件産業化旧式化するガレオン船次世代なし体力移動力攻撃力3050火力視界防御力183輸送燃料80陸上ユニットを8体...

貨物運送車

貨物運送車U.freight.png生産コスト50維持コストシールド食料不幸000必要条件株式会社旧式化するキャラバン次世代なし体力移動力攻撃力1020火力視界防御力121輸送燃料00ユニットのマニュ...

装甲艦

装甲艦U.ironclad.png生産コスト60維持コストシールド食料不幸101必要条件蒸気機関旧式化するフリゲート艦次世代駆逐艦体力移動力攻撃力3044火力視界防御力124輸送燃料00都市で解散する...

翻訳

翻訳 |地域化 |国際化 |navbarの編集Freecivを20以上の言語でプレイできることはご存知でしょうか?Freecivの開発チームでは、キーワードと文章を翻訳して他の言語でもプレイできるよう...

編集モード

ver2.2から「編集モード」が追加され、マップ作成がやや容易に行えるようになった。非公式wikiに編集モードの記事がありますできること[]ユニットや都市を新たに配置する、あるいは削除する。地形や特産...

総督府

Original: CVS-1.2 Translator: SAWADA Katsuya 非公式wikiに総督府の記事があります目次1 総督府(Citizen Management Agent, 市民...

経済

概要 | 操作 | 地形 | 都市 | ユニット | 戦闘 | 経済 | 外交 | 政治体制 | 科学技術 | 世界の不思議 | 都市建造物 | マニュアルのトップページこのマニュアルはまだver3....

竜騎兵

竜騎兵U.dragoons.png生産コスト50維持コストシールド食料不幸101必要条件指揮旧式化する騎士次世代騎兵隊体力移動力攻撃力2025火力視界防御力122輸送燃料00都市で解散することで生産コ...