TClientDataSet を使用してオブジェクトを管理し、オブジェクト データへの「データベース」アクセスを許可しています。これまでのところ、これはうまく機能しています。データセット内に「ObjectName」と「ObjectRef」という 2 つの「特別な」(非表示の) フィールドがあります。ObjectName は、My category.my object' という形式のオブジェクト アイテムのカテゴリと名前の接続詞であり、オブジェクト インスタンス内からレコード番号に移動するために使用されます。このフィールドは索引付けされています。「ObjectRef」は、そのオブジェクトのインスタンスへのポインターの整数の typcast であり、他のすべてのオブジェクトの有効期間管理に使用されます。
「ObjectName」フィールドのサイズを、予想される最大のカテゴリと名前の組み合わせに合わせて選択する必要がありましたが、これは単なるインデックスであり、パフォーマンスとメモリの理由から、このサイズをできるだけ小さくしたいと考えています。ハッシュとして使用できる一意のフォーム「My category.my name」に適用できる「ロスレス」関数はありますか? ハッシュ関数は巧妙に見えますが、コンピューター サイエンスの第一人者ではありません。私はそれらの出力が一意であるかどうかを知る方法がわかりません。
ありがとう