Форум: "Основная";
Текущий архив: 2011.03.20;
Скачать: [xml.tar.bz2];
ВнизRecord - сравнивание записей Найти похожие ветки
← →
igordth © (2009-07-30 17:01) [0]При сравнивании записей выдает ошибку несовместимость типов:
...
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]=ArtMem then //тутачки ошибочка!!!
Break
else
...
возможно ли вообще такое сравнивание??
← →
clickmaker © (2009-07-30 17:24) [1]> возможно ли вообще такое сравнивание??
нет. см., например, EqualRect()
← →
igordth © (2009-07-30 17:35) [2]спасибо, хотел покороче написать
← →
Юрий Зотов © (2009-07-30 20:00) [3]Если записи упакованы и не содержат указателей, то "покороче написать" можно через CompareMem.
← →
Anatoly Podgoretsky © (2009-07-31 13:15) [4]Ты про то, что разные указатели могут указывать на одинаковые, но разные данные?
← →
Юрий Зотов © (2009-07-31 15:12) [5]
> Anatoly Podgoretsky © (31.07.09 13:15) [4]
Угу. Точнее - у одинаковых по сути данных могут быть разные адреса.
← →
Тимохов_ (2009-08-03 12:51) [6]Не согласен с 3 в общем случае, даже если нет указателей.
Например вещественные типы могут иметь разное бинарное представление (comparemem даст "не равно"), но по сути иметь одинаковое значение с точностью до машинного епсилон.
В общем я за то, чтобы писать явное сравнение в любом случае, т.е. сделать сравнение (по правилам, применимым к сравниваемому типу) для каждого члена записи и объединить его AND.
Ну это я так, зужу.
← →
Anatoly Podgoretsky © (2009-08-03 13:17) [7]CompareMem может вызвать проблемы с .NET
Я тоже за поелементное сравнение, но в случае с float не явное, а относительное сравнение.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2011.03.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c