Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как быстро скопировать record ? [D7]


Страницы:   1 2

Рекорд ©   (2007-01-08 07:14:00) 

TMyRec = record
 Name = string;
 par1, par2 ... par100 : Integer;
end;


Хочется скопировать её через CopyMemory. Но мешает Name.
Нельзя ли как нибудь скопировать через CopyMemory без нэйма? А потом скопировать name через присваивание?

Потому, что просто лень писать

 r2.par1 := r1.par1;
 r2.par2 := r1.par2;
 ...
 r2.par100 := r1.par100;


Palladin   (2007-01-09 04:33:00) [21]

без запуска все уже понятно
TMyRec у тебя указатель

опять же думать нужно головой
изучай паскаль и не выпендривайся


Рекорд   (2007-01-09 04:29:00) [22]


> Palladin ©   (09.01.07 01:38) [8]
> > [7] Рекорд  
> врешь, причем нагло...

А запустить Дельфи и проверить - слабо?


> Джо ©   (09.01.07 01:38) [9]
> SizeOf(TMyRec)-4 ни в коем случае не может быть равен 0.

SizeOf(TMyRec) = 4


Palladin   (2007-01-09 01:56:00) [23]

но про падеж с луны это просто возмутительно
в бойкот


Джо   (2007-01-09 01:54:00) [24]

> [13] ors_archangel ©   (09.01.07 01:51)
>
> > procedure dummy002(var r1,r2);
>
> Да, много ещё проблем будет от нестрогой типизации

Каждый сам себе — злобный Буратино :)


ors_archangel   (2007-01-09 01:51:00) [25]


> procedure dummy002(var r1,r2);

Да, много ещё проблем будет от нестрогой типизации


Palladin   (2007-01-09 01:43:00) [26]

хотя может и не врет...
если
procedure dummy002(var r1,r2);
begin
...
end;

dummy002(myr1,myr2);

ну тогда сам виновать... головой думать нужно что делаешь...

второй вариант, своя самописная функциф sizeof... в чем сомневаюсь, но диагноз и рекомендации см выше


ors_archangel   (2007-01-09 01:43:00) [27]

..И заговорила Делфи человеческим голосом :) - от таких высказываний :)


ors_archangel   (2007-01-09 01:39:00) [28]


> Что, с Луны свалился? Спроси у Дельфи.

Ну, если запись не занимает места :) то нафига её копировать-то?
з.ы. Ну теперь наконец-то решена проблема ОЗУ: пишем всё в записях, и можно хоть 5 Гигов, хоть 6! :))))))))


Джо   (2007-01-09 01:38:00) [29]

> [7] Рекорд   (09.01.07 01:33)
>
> > Джо ©   (08.01.07 08:01) [6]
> >
> > > > Move(r1.par1, r2,par1, sizeof(r1)-4);
> > >
> > > И что это значит? Размер 0. Значит ошибку выдаст.
> >
> > Отчего же вдруг 0?
>
>
> Что, с Луны свалился? Спроси у Дельфи.

SizeOf(TMyRec)-4 ни в коем случае не может быть равен 0.


Palladin   (2007-01-09 01:38:00) [30]


> [7] Рекорд  

врешь, причем нагло...


Рекорд   (2007-01-09 01:33:00) [31]


> Джо ©   (08.01.07 08:01) [6]
>
> > > Move(r1.par1, r2,par1, sizeof(r1)-4);
> >
> > И что это значит? Размер 0. Значит ошибку выдаст.
>
> Отчего же вдруг 0?


Что, с Луны свалился? Спроси у Дельфи.


Джо   (2007-01-08 08:01:00) [32]

> > Move(r1.par1, r2,par1, sizeof(r1)-4);
>
> И что это значит? Размер 0. Значит ошибку выдаст.

Отчего же вдруг 0?


Рекорд   (2007-01-08 07:46:00) [33]


> ors_archangel ©   (08.01.07 07:37) [4]
> Рекорд, в твоём случае тебе рекомендуется и не кем-то там!
>  а человеком уважаемым

Вах !
В каком он звании?


> Move(r1.par1, r2,par1, sizeof(r1)-4);

И что это значит? Размер 0. Значит ошибку выдаст.


> p.s. С Рождеством, хоть и прошедшим!

Аналогично.


ors_archangel   (2007-01-08 07:37:00) [34]

Рекорд, в твоём случае тебе рекомендуется и не кем-то там! а человеком уважаемым сначала скопировать себе поле Name, вот так:

r2.name := r1.name;

а потом, как с этим трудным делом справитесь, то можно и остальное наибыстрейшим образом-то и покопировать, прикинь? нет, ты код зацени:

Move(r1.par1, r2,par1, sizeof(r1)-4);

:))
p.s. С Рождеством, хоть и прошедшим!
p.p.s. В общем случае твой вопрос не имеет решения в рамках Паскаля.


Рекорд   (2007-01-08 07:31:00) [35]


> Anatoly Podgoretsky ©   (08.01.07 07:16) [1]
>
> > Рекорд  (08.01.2007 07:14:00)  [0]
>
> А почему бы тебе не скопировать Name, а остальное с помощью
> CopyMemory


В этом и заключается вопрос.
Если знаешь как правильно это сделать - напиши.


ors_archangel   (2007-01-08 07:19:00) [36]

А записи записям разве не присваиваются, их, помойму, только сравнивать нельзя.... Правда, если присваиваются, то код колучается типа как в [0] (помойму в Delphi7 так было, когда смотрел)


Anatoly Podgoretsky   (2007-01-08 07:16:00) [37]

> Рекорд  (08.01.2007 07:14:00)  [0]

А почему бы тебе не скопировать Name, а остальное с помощью CopyMemory


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо