Perlのハッシュのようなものは?

解決


ノボル  2006-11-07 19:38:58  No: 23783

PerlにあるハッシュのようなものをDelphiで実現するには、どのようなテクニックを
使えばいいのでしょうか?

P.S.
Perlのハッシュとは、キーと値が対になった項目です。


うんと  2006-11-07 19:42:01  No: 23784

TStringList を使います。Names と Values プロパティーをヘルプで
読んでください。


ノボル  2006-11-07 20:15:24  No: 23785

うんとさん、ありがとうございました。

TStringListは今まで山のように使ってきましたが、このような使い方ができるとは知りませんでした。
ただ、これですと、キーの文字列の中に = が使えないんですねぇ。


ハッシュ  2006-11-07 21:33:40  No: 23786

ソースを参照していただければ分かりますがTStringListのValuesプロパティはIndexOfName()を呼び出しているのですが、このルーチンがベタサーチなので速度的に速くないと思われます。
IniFiles.pasの中でTMemIniFileの使用しているTHashedStringListを利用すればより高速にアクセスできるのではないでしょうか?
THashedStringListはTStringListから派生しているのでTStringListと同じ使い方が出来ます。


sk  2006-11-07 22:16:16  No: 23787

TStringListでもSortedをTrueにしてFindを使って検索すればバイナリサーチするので普通に使うよりは早く使えます
まあ、ちょっと面倒ですが


ハッシュ  2006-11-07 22:27:27  No: 23788

残念ながらTStringListのFindではキーと値の組み合わせのキーでの検索が出来ません。


sk  2006-11-07 23:36:42  No: 23789

ああ、そうでした。すみません勘違いしていました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加