2010-10-25 4 views
7

Есть ли другой способ сравнения 2 TGUID-элементов, кроме преобразования их в строки (функция guidtostring) и после оценки выражения в Delphi 7?Delphi 7 tguid compare

ответ

4

IsEqualGUID() (или IsEqualIID()), как предположил Тондрей. Вы также можете использовать SysUtuils. CompareMem() вместо этого, поскольку TGuid является двоичным массивом байтов.

+0

В качестве примечания стороны: GUID не является массивом байтов, это упакованная структура с DWORDS, СЛОВАМИ и BYTES с общей длиной 16 байт. Вы можете найти структуру, проверив тип TGUID. –

+5

Моя точка зрения заключалась в том, что это двоичный тип данных фиксированной длины без каких-либо отступов, поэтому CompareMem() будет работать как альтернатива IsEqualGUID(), то есть: 'CompareMem (@ Guid1, @ Guid2, SizeOf (TGuid))'. –

+0

... и 'CompareMem()' выглядит немного быстрее. – JensG