2010-10-25 22 views
7

2 TGUID elemanını karşılaştırmak için başka bir yol var mı, bunları dizeler (guidtostring işlevi) haline dönüştürmek ve ifadeyi değerlendirdikten sonra, Delphi 7?Delphi 7 tguid karşılaştırması

cevap

4

IsEqualGUID() (veya IsEqualIID()). SysUtuils'i de kullanabilirsiniz. Bunun yerine, CompareMem() yerine, TGuid ikili bir bayt dizisidir.

+0

Bir yan not olarak: GUID, bir bayt dizisi değil, DWORDS, WORDS ve BYTES olan ve toplam uzunluğu 16 bayt olan paketlenmiş bir yapıdır. TGUID tipine bakarak yapıyı araştırabilirsiniz. –

+5

Benim amacım, herhangi bir dolgu olmadan sabit uzunlukta bir ikili veri türü olmasıydı, bu yüzden CompareMem() IsEqualGUID() 'ye alternatif olarak çalışacak, yani:' CompareMem (@ Guid1, @ Guid2, SizeOf (TGuid)) '. –

+0

... ve 'CompareMem()' biraz daha hızlı görünüyor. – JensG