3

Delphi プロジェクトにさまざまなプログラム データを保存してロードしたいと考えています。このデータは、単純な文字列から、より複雑な定期的な構成オブジェクト データにまで及びます。

ご存知のように、ini ファイルはプログラム データをすばやく簡単に格納する方法を提供しますが、キーと値の表現に限定されます。

このような要件に関しては、XML が武器として選ばれることがよくありますが、XML に代わるものがあるかどうか知りたいです。

最近、XML よりもはるかに扱いやすいと思われる Delphi のスーパーオブジェクトを見つけました。そのような「非 Web タスク」に JSON を使用することに反対することはありますか?

Delphi でプレーン テキスト(ini、xml、json など)でのデータ ストレージとロードをサポートする他のオプションをご存知ですか。

4

2 に答える 2

6

実際、選択する保存形式 (ini、xml、json など) は問題ではありません。すべてのニーズに合った抽象構成クラスを構築し、その後、具体的なクラスと具体的な格納形式について考え、実装の容易さとおそらく人間の可読性によって決定します

場合によっては、さまざまな構成の側面 (グローバル、マシン、ユーザー) も必要になります。

構成クラスを使用すると、それらを簡単に混在させることができ (ユーザー定義でない場合はグローバルを使用)、保存形式を混在させることもできます (DB からのグローバル構成、レジストリからのマシン構成、ファイルからのユーザー構成)。

于 2012-11-16T14:08:12.300 に答える
3

古き良きファイルは、ユニット内の組み込みおよびクラスINIと組み合わせて、私にとってはうまく機能しますTIniFileTMemIniFileIniFiles

INI ファイルの利点;

  1. バイナリではありません。
  2. レジストリ設定よりもマシンからマシンへの移動が簡単です。
  3. 調べやすく、見やすい。
  4. XML とは異なり、シンプルで人間が判読できる

  5. INI ファイルは手動またはツールで簡単に変更でき、ほぼ完全に防げますが、完全に判読できない不正な形式の JSON または XML を作成するのは簡単ですが、INI ファイルの「1 つのセクションを損傷する」以上のことを行うのは困難です。シンプルさが勝ります。

欠点:

  1. XML やレジストリとは異なり、セクションとアイテムという多かれ少なかれ「2 つのレベル」です。

  2. TMemIniFile制御可能な方法で結果を並べ替えるわけではありません。TMemIniFile私はしばしば、自分の ini ファイル内の項目が人間によって生成された場合、それらの項目の順序を制御できたらいいのにと思います。その順序を保持したいと思いますが、TMemIniFile は順序を保持しません。普通の古いTIniFile

于 2012-11-16T20:11:30.690 に答える