![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Record - сравнивание записей [D7, WinXP]
igordth © (2009-07-30 17:01:00)При сравнивании записей выдает ошибку несовместимость типов:
...
var
Art: array[1..500] of TArtist;
ArtMem:TArtist;
dat:file of TArtist;
...
for i:=1 to j do
while not Eof(dat) do begin
read(dat,ArtMem);
if Art[i]=ArtMemthen //тутачки ошибочка!!!
Break
else
...
возможно ли вообще такое сравнивание??
Anatoly Podgoretsky (2009-08-03 13:17:00) [1]CompareMem может вызвать проблемы с .NET
Я тоже за поелементное сравнение, но в случае с float не явное, а относительное сравнение.
Тимохов_ (2009-08-03 12:51:00) [2]Не согласен с 3 в общем случае, даже если нет указателей.
Например вещественные типы могут иметь разное бинарное представление (comparemem даст "не равно"), но по сути иметь одинаковое значение с точностью до машинного епсилон.
В общем я за то, чтобы писать явное сравнение в любом случае, т.е. сделать сравнение (по правилам, применимым к сравниваемому типу) для каждого члена записи и объединить его AND.
Ну это я так, зужу.
Юрий Зотов (2009-07-31 15:12:00) [3]
> Anatoly Podgoretsky © (31.07.09 13:15) [4]
Угу. Точнее - у одинаковых по сути данных могут быть разные адреса.
Anatoly Podgoretsky (2009-07-31 13:15:00) [4]Ты про то, что разные указатели могут указывать на одинаковые, но разные данные?
Юрий Зотов (2009-07-30 20:00:00) [5]Если записи упакованы и не содержат указателей, то "покороче написать" можно через CompareMem.
igordth (2009-07-30 17:35:00) [6]спасибо, хотел покороче написать
clickmaker (2009-07-30 17:24:00) [7]> возможно ли вообще такое сравнивание??
нет. см., например, EqualRect()